그림 확대😀
직사각형 형태의 그림 파일이 있고, 이 그림 파일은 1 × 1 크기의 정사각형 크기의 픽셀로 이루어져 있습니다.
이 그림 파일을 나타낸 문자열 배열 picture과 정수 k가 매개변수로 주어질 때,
이 그림 파일을 가로 세로로 k배 늘린 그림 파일을 나타내도록 문자열 배열을 return 하는 solution 함수를 작성해 주세요.
※ 제한 사항
1 ≤ picture의 길이 ≤ 20
1 ≤ picture의 원소의 길이 ≤ 20
모든 picture의 원소의 길이는 같습니다.
picture의 원소는 ‘.’과 ‘x’로 이루어져 있습니다.
1 ≤ k ≤ 10
입출력
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”]”” |
function solution(picture, k) {
var answer = [];
// 각 행에 대해 k배 확장
for (const row of picture) {
let newRow = "";
for (const pixel of row) {
newRow += pixel.repeat(k);
}
// k배로 늘린 행을 answer에 추가
for (let i = 0; i < k; i++) {
answer.push(newRow);
}
}
return answer;
}
먼저, 빈 배열 answer를 초기화합니다.
이 배열은 가로와 세로로 k배 늘려진 새로운 그림을 담을 것입니다.
주어진 picture 배열을 순회하면서 각 행에 대한 처리를 수행합니다.
각 행을 newRow라는 빈 문자열로 초기화합니다.
행의 각 픽셀에 대해 pixel.repeat(k)를 통해 픽셀을 k번 반복하여 늘립니다.
이렇게 만들어진 새로운 행 newRow에는 각 픽셀이 k번 반복된 결과가 저장됩니다.
newRow를 k번만큼 answer 배열에 추가합니다. 이렇게 하면 각 행이 가로로 k배 늘어난 것이 됩니다.
모든 행에 대한 처리가 끝나면, answer 배열을 반환합니다.