코딩테스트

[코딩테스트] 수박수박수박수박수박수?

이경욱 2023. 12. 15. 09:27

문제

길이가 n이고, "수박수박수박수...." 와 같은

 

패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요.

 

 

예를들어 n이 4이면

 

"수박수박"을 리턴하고

 

3이라면 "수박수"를 리턴하면 됩니다.

 

 

 

 

 

해결

const solution = (n) =>
    Array
    .from({length: n}, (_, i) => i % 2 ? '박' : '수')
    .join("")

 

배열을 n의 길이만큼 만들고 홀수일 경우 '박' , 짝수일 경우 '수' 를 붙이게 하였다.

 

그러고 join 메서드로 배열을 합쳐주니 해결되었다.

 

 

join에서 , 쉼표도 함께 나오는 문제가 있었다.

 

안에 "" 큰따옴표를 붙여주니 사라졌다.

 

 

 

 

 

다른 사람의 풀이

var waterMelon = n =>'수박'.repeat(n/2) + (n%2 === 1 ? '수' : '');

 

n의 길이를 2로 나누어서

 

repeat하고 

 

만약 홀수라서 몫이 1이 남는다면

 

'수'를 붙여줘라

 

라고 코드를 작성한 것 같아 보인다.

 

 

repeat 메서드는 사용을 안했었는데

 

이 기회에 배워가야겠다.