Developer. Designer

프로그래머스 기초트레이닝 Day24-2

그림 확대😀

직사각형 형태의 그림 파일이 있고, 이 그림 파일은 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 배열을 반환합니다.