프로그래머스 Lv.1 수박수박수박수박수박수?

Lian Kim·2022년 8월 28일
0

coding-test

목록 보기
17/19

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


문제

문제 설명

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


제한 사항

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

입출력 예

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



풀이

나의 풀이

  1. "수", "박", "수", "박" 음절 단위로 반복하는 것이기 때문에 n을 2를 나눠 반만 "수박"을 반복해주는데, n이 홀수일 경우를 고려해 반복 횟수를 1회 추가회준다. (n이 2일 때 "수박")
  2. 1을 수행하면 홀수일 경우 한 음절 더 많게, 짝수일 경우 두 음절 더 많게 반복되기 때문에 slice 메서드로 정확하게 n까지만 잘라준다.
function solution(n) {
    return "수박".repeat(n/2 + 1).slice(0, n);
}

다른 사람들의 풀이

n을 2로 나눈 값만큼 반복한 후, n을 2로 나눈 나머지가 1이면(=> 홀수) '수'를 붙여주고, 1이 아니면(=> 짝수) 빈 문자열을 붙여준다. 메서드를 굳이 하나 더 쓸 필요 없이 홀수면 '수'를 하나 더 붙여주는 방법이 효율적이라고 생각했다.

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

0개의 댓글