찰리의 이야기

Javascript 수박수박수박수박수박수? 본문

찰리: 코딩 연습

Javascript 수박수박수박수박수박수?

쨜리 2021. 9. 18. 23:50
반응형

Javascript 수박수박수박수박수박수?

 

 

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

제한 조건

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

입출력 예

n / return

3 "수박수"
4 "수박수박"

 

주어진 코드

function solution(n) {
    var answer = '';
    return answer;
}

 


"수"라는 글자와 "박"이라는 글자를 

홀짝홀짝... 반복에 따라 어떻게 나타내야할지 고민이 되었습니다.

짝수에서는 "수박"을 n/2 번 반복하고,

홀수에서는 그 반복한 수에 "수"만 붙여주면 어떨까 싶습니다.

 

function solution(n) {
    let arr = [];
    if(n % 2 === 0){
        for(let i=1; i<=(n/2); i++){
            arr.push("수박");
        }
    }else{
        for(let j=1; j<=(n/2); j++){
            arr.push("수박");
        }
        arr.push("수");
    }
    return arr.join("");
}

 

여기까지가 제 풀이 방법이고,

다른 풀이법도 살펴보았습니다.

 

const waterMelon = n => {
    return '수박'.repeat(n/2) + (n%2 === 1 ? '수' : '');
}

 

깔끔하네요.

역시 문자의 반복에서는 repeat() 메서드를 이용하는게 좋아보입니다.

n/2 번 "수박"을 출력하고, 홀수인 경우 "수"만 붙인다는 구조는 저랑 같았지만,

훨신 간단하게 풀어냈네요.

문자의 반복은 repeat() 메서드를 활용하자!

 

 

 

Javascript 수박수박수박수박수박수?

반응형
Comments