프로그래머스)수박수박수박수박수박수?

minji jeon·2022년 7월 18일
0

알고리즘

목록 보기
15/29
post-thumbnail

1.문제

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

2. 접근

처음에는 어찌 반복을 해볼까 고민하였으나
짝수에는 수가 출력되고,
홀수에는 박이 출력된다.
반복문이니깐 반복문을 쓰자해서
짝수에는 수를 더하고 홀수에는 박을더해서 누적으로 값을 구하는 방법을 생각하였다.

하지만 생각해보니
문자열 반복은? repeat을 쓰면 되좌나...?
수박을 n번 repeat한다면 길이가 두배가 된다 그럴경우 문자열을 잘라주는 함수를 사용할수 있이 않을까하는 생각을 왜 못했을까..?

1. 내답

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

우선 "수"부터 시작해야하니 i가 짝수일때는 "수"를 문자열에 더하고
홀수일때는 "박"을 더하도록 하였다.
그렇게 문자열이 쌓여서 수박수박수가..된다.

for문을 쓰지 않는 방법은 repeat을 쓰는 방법이 있다.

  function solution(n) {
    return "수박".repeat(n).substring(0,n)  //substring(시작, 끝)
}

repeat함수를 n까지 반복한뒤 0부터 n번까지의 문자열로 잘라서 반환해주면 끝이다.
간단하다.

오늘의 깨달음

문자를 더하면 "수" + "박" = 수박
단어 반복은 repeat
문자열 자르는거는 substring , slice도 가능...

profile
은행을 뛰쳐나와 Deep Dive in javascript

0개의 댓글