[JavaScript] 프로그래머스 문자열 반복 출력하기

Gaeun·2022년 11월 10일
0

문제 설명
문자열 my_string과 정수 n이 매개변수로 주어질 때, my_string에 들어있는 각 문자를 n만큼 반복한 문자열을 return 하도록 solution 함수를 완성해보세요.

나의 풀이

  1. 우선 my_string을 배열로 만들어야겠다고 생각해서 spread syntax를 생각했다.
  2. 새로운 배열로 반환하기 위해 map 메서드를 생각했다.
  3. repeat 메서드를 사용하여 배열의 첫 번째 인덱스부터 n번 씩 반복된 새로운 문자열을 만들었다.
  4. join('')을 사용하여 배열을 문자열로 바꾸고, 한 문자열로 만들어주었다.
const solution = (my_string, n) => {
    return [...my_string].map(a => a.repeat(n)).join('');
}

다른 사람의 풀이

function solution(my_string, n) {
    return my_string.split('').reduce((acc, cur) => acc + cur.repeat(n), '')
}

split을 사용하여 my_string의 문자 하나하나를 배열에 담고, reduce 메서드를 사용하여 새로운 문자열을 만들어내었다.

위 코드를 익히기 위해 하나씩 콘솔에 찍어보았는데, acc + cur.repeat(n), ''에서 ''를 지울 때에는 "heeellllllooo"가 반환되었다. 이게 왜 그런지 이해가 잘 되지 않아 MDN을 찾아보니 아래와 같이 나왔다.

arr.reduce(callback[, initialValue])

initialValue를 제공하지 않으면, reduce()는 인덱스 1부터 시작해 콜백 함수를 실행하고 첫 번째 인덱스는 건너 뜁니다. initialValue를 제공하면 인덱스 0에서 시작합니다.

공부해나가면서 reduce 메서드를 조금 더 익혀야겠다.

profile
🌱 새싹 개발자의 고군분투 코딩 일기

0개의 댓글