코딩테스트 | (JavaScript) 프로그래머스 : 수박수박수박수박수박수?

trevor1107·2021년 8월 18일
0

✅문제

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

❕ 제한사항

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

🎹📢입출력 예제

✍풀어보기

function solution(n) {
    let answer = '';
    for(let i = 0; i < n; ++i){
        answer += i % 2 ? '박' : '수';
    }
    return answer;
}

첨에 repeat 함수가 생각났지만, 수박에서 "수"와 "박"을 반으로 어떻게 하지?? 라는 고민을 접고 그냥 바로 후딱 풀었다. 다른 사람의 풀이를 보면 내가 생각하는 방법으로 누가 풀었을 거라 믿는다.


🎈다른 사람의 풀이

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

역시나.. repeat을 이렇게 반으로 나눠서 하는 방법이 있었다! 이해를 위해 테스트해봤다.
"수박".repeat(5/2) -> "수박수박" -> 여기에 + (5%2 === 1 ? '수' : ''); -> "수박수박수"
repeat()에는 정수만큼 반복한다는 것을 알 수 있었다. 5/2는 3.5지만 정수형 형 변환하면 내림으로 3이 되어버린다. 이 풀이 방법이 내가 푼 방법 보다 더 속도가 빠르다.



참고 자료 및 사이트 (감사합니다)

profile
프론트엔드 개발자

0개의 댓글