수박수박수박수박수박수?

2023. 4. 11. 12:10스터디/ALGORITHM

수박수박수박수박수박수?

코딩테스트 연습 > 연습문제 > 수박수박수박수박수박수?

문제 설명

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

제한사항

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

문제 풀이

function solution(n) {
    let cnt = Math.floor(n/2)   // 반복되어야 하는 횟수
    let str ='수박'.repeat(cnt)  // 반복
    if(n%2 !== 0){
        // 홀수라면 '수' 가 한번더 붙어야한다.
        // 길이 4 이면 수박수박
        // 길이 5 이면 수박수박수
        str = '수박'.repeat(cnt) +'수'
    }
    return str;
}

 

코드 리뷰

  1. 다른풀이
function solution(n) {
    let str ='수박'.repeat(Math.ceil(n/2)).slice(0, n);
    return str;
}

하지만 무조건 repeat()을 통해 반복을 한 뒤에 글자를 자르게 되는건 필수적으로 repeat() 내부의 포문을 돌게 되므로 반복횟수가 길어질 수록 효율이 좋지 않다. 따라서 최소한의 수만큼 반복한 다음 짝수,홀수를 판단하여 추가적으로 문자열을 더해 주는 것이 좋다.

 

느낀점

무조건 간단하고 짧은 코드가 좋은 코드는 아니란 생각을 하였다.

'스터디 > ALGORITHM' 카테고리의 다른 글

3진법 뒤집기  (0) 2023.04.11
이상한 문자 만들기  (0) 2023.04.11
문자열 다루기 기본  (0) 2023.04.11
나누어 떨어지는 숫자 배열  (0) 2023.04.11
2016년  (0) 2023.04.11