본문 바로가기
기초다지기/JS 코딩테스트

javascript n x n 크기의 정사각형 배열로 확대하기

by 김빵그 2023. 10. 30.

문제 

문자열 배열 picture과 정수 k가 매개변수로 주어질 때 이 배열을 가로 세로로 k배 늘린 배열로 리턴하여라

나의 풀이 

function solution(picture, k) {
    var answer = [];
    for(let i = 0; i < picture.length; i++) {
        var a = [...picture[i]].map((w)=>w.repeat(k)).join("");
        for (let j = 0; j < k; j++) {
          answer.push(a);
        }
    }
    return answer;
}
  • a 변수는 picture 배열의 각 요소를 k 번 반복하여 문자열을 나타낸다
  • for 문을 사용하여 k 배 확대하여 push 한다

다른 풀이

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;
}
  • line 문자열을 배열로 변환한다 
  • reduce를 사용하여 cur를 k번 반복하고 그 결과를 acc에 더한다