[Algorithm] 수박수박수박수박수박수?

May 21, 2021 · 1 min read label-icon Algorithm

프로그래머스 문제 링크


문제 설명

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

제한 조건

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

입출력 예

n return
3 “수박수”
4 “수박수박”

내가 푼 방식

1
2
3
function solution(n) {
    return [...Array(n)].map((v,i) => i).map(v => v % 2 === 0 ? '' : '').join('')
}
  1. 매개변수로 받은 자연수 n을 map()을 사용해서 [0 ~ (n-1)]의 항목을 가진 배열을 생성한다.
  2. 한번 더 map()을 사용해서 배열의 항목이 짝수일 경우에는 ‘수’를, 홀수면 ‘박’을 반환해준다.
  3. join()을 사용해서 문자열로 변경해준다.

다른 답안

1
2
3
function solution(n) {
    return '수박'.repeat(n / 2) + (n % 2 === 1 ? '' : '');
}
  1. repeat()를 사용해서 ‘수박’을 n/2만큼 반복해준다.
  2. 만약 매개변수로 받은 n이 홀수일 경우에는 맨 뒤에 ‘수’를 추가해준다.