길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다.
n은 길이 10,000이하인 자연수입니다.
n | return |
---|---|
3 | "수박수" |
4 | "수박수박" |
입/출력 설명
function solution(n) {
return '수박'.repeat(n).substring(0, n);
}
function solution(n) {
let result = ""
for(let i = 1; i<=n; i++){
if(i % 2 === 0){
result += "박"
}else{
result += "수"
}
}
return result
}
'수박수박수박수..' 와 같은 패턴이 주어진 수 n번
만큼 출력되게 하는 문제였다.
문자열을 반복하는 repeat()
을 사용하고 '수박'은 두 글자니까 2 x n
자리의 문자가 생성 된다.
단순하게 생각해보면 n = 3
일 경우 2(수박) x 3(n) = 6(수박수박수박)
으로 생성된다.
그래서 substring(0,n)
으로 0번째 문자부터 n번 문자까지 삭제하므로 뒤의 n개의 문자인 '수박수'만 남게 되는 것이다.
다른사람의 풀이를 보면 간단하게 for문을 사용해 홀수/짝수를 구해 차례로 '수'와 '박'을 할당해서 리턴 하도록 했다.