본문 바로가기

■ 프로그래밍/프로그래머스

[자바스크립트/Lv1] 수박수박수박수박수박수?

https://programmers.co.kr/learn/courses/30/lessons/12922

 

[문제]

더보기

문제 설명

길이가 n이고, 수박수박수박수....와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 수박수박을 리턴하고 3이라면 수박수를 리턴하면 됩니다.

 

제한 조건

  • n은 길이 10,000이하인 자연수입니다.

입출력 예

n return
3 수박수
4 수박수박

 

[풀이]

2020.03.15

function solution(n) {
    var watermelon = "수박";
    var splitWatermelon = watermelon.split(""); // "수박"을 "수", "박"으로 분할
    // console.log(splitWatermelon);
    
    var repeatArray = new Array(); // 빈 배열 생성
    for (var i = 0; i < n; i++) {
        repeatArray.push(splitWatermelon[i % splitWatermelon.length]);
    }
    // console.log(repeatArray);
    
    var answer = repeatArray.join(""); // 배열을 다시 하나로 붙이기
    return answer;
}

 

for문 역할: splitWatermelon의 요소를 n번 만큼 빈 배열에 데이터 추가

- n = 3일 경우, for문은 아래와 같이 작동한다.

    // n이 3일 경우
    
    var repeatArray = new Array();
    for (var i = 0; i < n; i++) {
        repeatArray.push(splitWatermelon[i % splitWatermelon.length]);
        // repeatArray.push(splitWatermelon[0 % 2]); // output: 0 === "수"
        // repeatArray.push(splitWatermelon[1 % 2]); // output: 1 === "박"
        // repeatArray.push(splitWatermelon[2 % 2]); // output: 0 === "수"
        
    }
    // console.log(repeatArray);