본문 바로가기
알고리즘 스터디/프로그래머스 스킬체크 레벨 1(끝)

[프로그래머스 스킬체크 레벨 1] 수박수박수박수박수박수? 문제 풀이 및 설명 - 자바스크립트[JavaScript]

by 레일라오리덕 2021. 7. 13.
728x90

https://programmers.co.kr/learn/courses/30/lessons/12922?language=javascript 

 

코딩테스트 연습 - 수박수박수박수박수박수?

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

programmers.co.kr

 

문제

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

 

 

제한 사항

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

 

결괏값 예시

 

n return
3 "수박수"
4 "수박수박"

 

기본 제공 틀

 

function solution(n) {
    var answer = '';
    return answer;
}

 

풀이 [JavaScript]

 

728x90

저는 삼항 연산자를 이용하여 문제를 해결 해 보았습니다.

이 전의 직사각형 별찍기나 짝수와 홀수 문제를 풀어보면서 얻은 힌트를 적용해보았습니다.

물론 이 예제에서 n의 값은 자연수이기 때문에 이전에 발생했던 문제처럼 음수값을 2로 나누었을때, -1 값이 나와 정확한 로직을 구현하지 못했던 문제는 발생하지 않을 것 같았지만, 그래도 이전에 배운 지식을 써먹기 위해 나머지 값이 0일경우로 삼항연산자를 구현해보았습니다.

또한, 직사각형 별찍기에서 구현해보았듯이, 문자열의 반복은 .repeat(n) 함수를 사용해보았습니다.

다만, 나눈 나머지 값이 1일 경우 '수'라는 글자를 한번 더 추가해주었습니다.

 

function solution(n) {
   return n % 2 === 0 ? '수박'.repeat(n/2) : '수박'.repeat(n/2)+ '수';
}

 

채점 결과 [JavaScript]

 

 

728x90

댓글