본문 바로가기
내일배움 과제/기타 과제

알고리즘 31번 - 수박수박수박수박수박수?

by GREEN나무 2024. 12. 10.
728x90

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

 

 

JS

문제

 

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

제한 조건
n은 길이 10,000이하인 자연수입니다.


계획

for과 if문으로 i가 홀수면 '수'를, 짝수면 '박'을 배열에 추가하고 join으로 합친 후 그 문자열을 반환합니다.


참고, 풀이

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

코드 줄이기


function solution(n) {
    let wArr=[]
    for(let i=1; i<n+1; i++){
       (i%2)? wArr.push("수"): wArr.push("박");
    }
    return wArr.join("")  
}

코드 간략화하기

function solution(n) {
    return "수박".repeat(Math.floor(n / 2)) + (n % 2 === 1 ? "수" : "");
}

repeat으로 n/2만큼 '수박'을 반복하고, n이 홀수인 경우 뒤에 '수'를 추가하기


참고 : https://strobus.store/365