[프로그래머스] 수박수박수박수박수박수? - JavaScript

Hyunji·2022년 1월 17일
0

알고리즘

목록 보기
13/51
post-thumbnail

문제설명

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

제한조건

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

입출력 예시

nreturn
3"수박수"
4"수박수박"

문제풀이

function solution(n) {
    return n % 2 == 0 ? "수박".repeat(n/2) : "수박".repeat(parseInt(n/2))+"수";
}
풀이 방법
  • 삼항연산자를 이용해서 문제를 풀어보았다
  • n을 2로 나누었을때 나머지가 0이라면?
  • 짝수일 때에는 .repeat() 메소드를 이용해서 n을 2로 나눈뒤 "수박"을 그 몫 만큼 곱해서 return 하게 하였다
  • 홀수일 때에도 .repeat() 메소드를 이용하지만 parseInt()를 이용해서 n을 2로 나눈 뒤 나눠진 몫을 소수점은 제거한 뒤 정수만 return 하게 한다. 그리고 뒤에 "수" 문자열을 더해서 return 해준다.
사용한 메소드

.repeat()

  • 문자열을 n번 반복해서 생성할 수 있다
  • n은 반복할 횟수(정수)
  • n을 생략하거나, 0으로 지정시, 빈 문자열 "" 을 반환한다.

출처: https://curryyou.tistory.com/199


다른 사람의 풀이
function waterMelon(n){
  var result = "수박수박수박수박수박수박수박수박수박수박수박수박수박수박수박수박수박수박수박수박수박수박수박수박수박수박수박수박수박수박수박수박"
  //함수를 완성하세요

  return result.substring(0,n);
}

ㅋㅋㅋ 재밌어서 가져와봤다

const waterMelon = n => "수박".repeat(n).slice(0,n);

.repeat() 을 이용해서 "수박"을 n번만큼 반복해주고 시작부터 n번째까지 .slice() 해준것으로 이해했다

profile
성장중인 개발자

0개의 댓글