본문 바로가기
개발/알고리즘

[프로그래머스][LEVEL1] 수박수박수박수박수박수?

by ISA(류) 2021. 8. 19.

# 문제 원문

 

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

 

제한 조건

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

 

# 문제 풀이

수박수~ 입력 받은 n은 만큼의 길이를 가진 수박 문자열을 만들면 되는 간단한 문제이다. repeat나 padEnd 같은 문자열 내장 메서드들로 간단히 풀 수 있는 문제. 나는 심심해서 배열로 만들고 reduce로 풀었다. (비효율적)

# 솔루션 플로우

1. 입력 받은 n만큼의 "수박"이 반복 되는 문자열을 만들어준다.

2. 구해진 result를 반환한다.

1. 무지성 reduce 풀이

function solution(n) {
    return new Array(n).fill(true)
        .reduce((result, _, idx) => idx % 2 ? result + "박" : result + "수", '');
}

1.  API를 활용한 풀이

function solution(n) {
    return '수박'.repeat(n / 2) + (n % 2 === 1 ? '수' : '');
}
반응형