프로그래머스

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

jjangsh 2024. 7. 30. 21:31

문제 :

 

 

내 풀이 :

function solution(my_string, n) {
  let arr = [];
  let temp = 0;
 my_string.split('').map((str) => {
     temp = n;
     while(true) {
         arr.push(str);
         temp--;
         if(temp <= 0) {
             break;
         }
     }
 })
  return arr.join('');
}

 

 

문제에서 주어지는 문자열 my_string을 split() 메서드를 사용해서 한 글자씩 배열 형태로 만든다.

 

그 배열을 map을 통해 하나씩 꺼내오고 꺼내온 요소를 n번씩 찍어야 하니까 안에서 반복문을 돌려 위에 선언해 둔 arr 배열에 n번씩 push 해준다.

 

마지막으로 arr을 join() 메서드로 문자열로 만들어준다.

 

 

 

다른 사람의 풀이 (1) : 

function solution(my_string, n) {
    var answer = '';

    for(var i = 0; i < my_string.length; i++){
        for(var j = 0; j<n;j++){
        answer += my_string[i];
   }
    }
    return answer;
}

 

2중 for문으로 풀어낸 코드입니다.

 

내 풀이와 비슷하게 반복문을 두 번 쓴 형태인데 훨씬 깔끔하다.

 

 

 

다른 사람의 풀이 (2) :

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

 

for of를 사용하여 문자열의 각 문자를 순회하고,

 

repeat() 메서드는 원래 문자열을 주어진 횟수만큼 반복하여 연결한 새로운 문자열을 반환하는 메서드인데,

 

이 메서드를 사용하여 각 문자를 n번씩 ans에 담아 리턴한 풀이이다.

 

 

 

repeat()를 알고는 있었지만 이 문제에서 사용해야겠다고는 생각하지 못했는데, 이렇게 사용하는 것이구나라고 느꼈다.