그림 확대
https://school.programmers.co.kr/learn/courses/30/lessons/181836
📔 문제 설명
직사각형 형태의 그림 파일이 있고, 이 그림 파일은 1 × 1 크기의 정사각형 크기의 픽셀로 이루어져 있습니다. 이 그림 파일을 나타낸 문자열 배열 picture과 정수 k가 매개변수로 주어질 때, 이 그림 파일을 가로 세로로 k배 늘린 그림 파일을 나타내도록 문자열 배열을 return 하는 solution 함수를 작성해 주세요.
💡 입출력 예
picture | k | result |
---|---|---|
[“.xx…xx.”, “x..x.x..x”, “x…x…x”, “.x…..x.”, “..x…x..”, “…x.x…”, “….x….”] | 2 | [”..xxxx……xxxx..”, “..xxxx……xxxx..”, “xx….xx..xx….xx”, “xx….xx..xx….xx”, “xx……xx……xx”, “xx……xx……xx”, “..xx……….xx..”, “..xx……….xx..”, “….xx……xx….”, “….xx……xx….”, “……xx..xx……”, “……xx..xx……”, “……..xx……..”, “……..xx……..”] |
[“x.x”, “.x.”, “x.x”] | 3 | [“xxx…xxx”, “xxx…xxx”, “xxx…xxx”, “…xxx…”, “…xxx…”, “…xxx…”, “xxx…xxx”, “xxx…xxx”, “xxx…xxx”] |
💻내가 작성한 코드
1
2
3
4
5
6
7
8
9
10
11
function solution(picture, k) {
var answer = [];
picture.map((r) => {
const newRow = [...r].map((s) => (newRow += s.repeat(k)));
for (let i = 0; i < k; i++) {
answer.push(newRow);
}
});
return answer;
}
💻다른 사람 코드
reduce를 사용해서 repeat된 문자열 반환
1
2
3
4
5
6
7
8
9
10
11
function solution(picture, k) {
var answer = [];
picture.forEach((line) => {
const expanded = [...line].reduce((acc, cur) => acc + cur.repeat(k), "");
for (let i = 0; i < k; i++) answer.push(expanded);
});
return answer;
}
This post is licensed under CC BY 4.0 by the author.