SG의 개발 공부로그

문자 반복 출력하기 [프로그래머스 코딩테스트 javascript] 본문

CodingTest

문자 반복 출력하기 [프로그래머스 코딩테스트 javascript]

DebeloperSG 2023. 3. 2. 17:56
728x90

문자 반복 출력하기

 

문제 설명

문자열 my_string과 정수 n이 매개변수로 주어질 때, 

my_string에 들어있는 각 문자를 n만큼 반복한 문자열을 return 하도록 solution 함수를 완성해 보세요.

 

 

 

제한사항

  • 2 ≤ my_string 길이 ≤ 5
  • 2 ≤ n ≤ 10
  • "my_string"은 영어 대소문자로 이루어져 있습니다.

 

 

입출력 예

my_string n result
"hello" 3 "hhheeellllllooo"

 

입출력 예 설명

입출력 예 #1

  • "hello"의 각 문자를 세 번씩 반복한 "hhheeellllllooo"를 return 합니다.

 

 

 

풀이

for 반복문을 돌려서 해당 요소마다 n 만큼 반복을 시켜주면서 answer에 추가해 준다.

function solution(my_string, n) {
    let answer = '';
    
    for (let i = 0; i < my_string.length; i++){
        for (let j = 0; j < n; j++){
            answer += my_string[i]
        }
    }
    return answer;
}

 

 

 

다른 풀이

for of 문을 사용하면 더 간단하게 풀 수 있다.

for of와 for in에 대한 포스팅링크는 하단 참고

 

for in 과 for of 반복문 차이점

일반적으로 자주 쓰는 for 반복문 for (let i = 0; i < 10; i++){ console.log(i); // 0~9까지 출력 } 하지만 이번글은 ES6 에 나온 새로운 반복문 for of 와 for in 문을 알아볼거다. 차이점 for in 과 for of는 반복이 가

sg-coding.tistory.com

function solution(my_string, n) {
    let answer = '';
    for (let s of my_string) answer+=s.repeat(n);
    return answer;
}

 

배열로 바꿔서 고차함수를 사용해서 풀 수 도 있다. 

my_string을 배열로 바꿔 준 다음,

reduce 함수를 통해서 다음에 올 요소를 repeat 함수로 n 만큼 반복시켜서 합쳐준다.

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