Post

그림 확대

https://school.programmers.co.kr/learn/courses/30/lessons/181836

📔 문제 설명

직사각형 형태의 그림 파일이 있고, 이 그림 파일은 1 × 1 크기의 정사각형 크기의 픽셀로 이루어져 있습니다. 이 그림 파일을 나타낸 문자열 배열 picture과 정수 k가 매개변수로 주어질 때, 이 그림 파일을 가로 세로로 k배 늘린 그림 파일을 나타내도록 문자열 배열을 return 하는 solution 함수를 작성해 주세요.

💡 입출력 예

picturekresult
[“.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.