프로그래머스 문제 링크
문제 설명
길이가 n이고, “수박수박수박수….”와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 “수박수박”을 리턴하고 3이라면 “수박수”를 리턴하면 됩니다.
제한 조건
입출력 예
n |
return |
3 |
“수박수” |
4 |
“수박수박” |
내가 푼 방식
1
2
3
| function solution(n) {
return [...Array(n)].map((v,i) => i).map(v => v % 2 === 0 ? '수' : '박').join('')
}
|
- 매개변수로 받은 자연수 n을
map()
을 사용해서 [0 ~ (n-1)]의 항목을 가진 배열을 생성한다.
- 한번 더
map()
을 사용해서 배열의 항목이 짝수일 경우에는 ‘수’를, 홀수면 ‘박’을 반환해준다.
join()
을 사용해서 문자열로 변경해준다.
다른 답안
1
2
3
| function solution(n) {
return '수박'.repeat(n / 2) + (n % 2 === 1 ? '수' : '');
}
|
repeat()
를 사용해서 ‘수박’을 n/2만큼 반복해준다.
- 만약 매개변수로 받은 n이 홀수일 경우에는 맨 뒤에 ‘수’를 추가해준다.