Algorithm/프로그래머스
[Python] [코딩 기초 트레이닝] / 그림 확대
code-bean
2024. 8. 24. 18:55
[문제 설명]
직사각형 형태의 그림 파일이 있고, 이 그림 파일은 1 × 1 크기의 정사각형 크기의 픽셀로 이루어져 있습니다.
이 그림 파일을 나타낸 문자열 배열 picture과 정수 k가 매개변수로 주어질 때,
이 그림 파일을 가로 세로로 k배 늘린 그림 파일을 나타내도록
문자열 배열을 return 하는 solution 함수를 작성해 주세요.
[제한사항]
1. 1 ≤ picture의 길이 ≤ 20
2. 1 ≤ picture의 원소의 길이 ≤ 20
3. 모든 picture의 원소의 길이는 같습니다.
4. picture의 원소는 '.'과 'x'로 이루어져 있습니다.
5. 1 ≤ k ≤ 10
def solution(picture, k):
answer = []
return answer
- 입출력 예를 보고 생각이 꼬여버림.
- 검색해서 다른 사람들이 푼 코드 보고 해결함.
[A] (내가 쓴 답)
def solution(picture, k):
answer = []
for pic in picture :
pic = "".join([p*k for p in pic])
for _ in range(k) :
answer.append(pic)
return answer
* 문자열도 k배 늘리고, 리스트도 k배 늘리기
* _ 의 의미 : i 라고 생각했을 때 i를 사용하지 않고 반복하게 되는 경우, 따로 선언해주지 않는다.
[A] 다른 답들
def solution(picture, k):
answer = []
for i in range(len(picture)):
for _ in range(k):
answer.append(picture[i].replace('.', '.' * k).replace('x', 'x' * k))
return answer
def solution(picture, k):
answer = []
for row in picture: # 이미지의 한 줄을 가져온다.
resized = ''
for pixel in row:
resized += pixel * k # 한 픽셀을 k배 만큼 가로로 늘린다.
for _ in range(k):
answer.append(resized) # 가로로 늘려진 이미지 한 줄을 k배 만큼 세로로 늘린다.
return answer