본문 바로가기

항해99_10기/[2주차] 알고리즘 문제풀이

[3번][연습문제[Lv.1] 수박수박수박수박수박수?

문제

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

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

나의 답

처음에는 n값을 받아서 홀/짝별로 따로 처리해줄까 하다가, 귀찮아서 아래와 같이 구현해봤다.

점수는 1점받았다ㅋㅋ 점수 주는 기준이 뭔지 잘 모르겠다...

function returnStr(n) {
  const str = "수박";
  let answer = "";
  for (let i = 0; i < n; i++) {
    answer += str[i%2];
  }
  return answer;
}

console.log(returnStr(3)) //수박수
console.log(returnStr(4)) //수박수박

 

메서드 활용 방법

사실 repeat(count) 메서드를 사용해서 간단하게 구현도 가능하다.

두 글짜를 한번에 찍어주기 때문에, 반복 횟수는 n/2(count 값으로 소수점이 들어가면, 앞자리 정수를 반환한다)를 해준 뒤, 홀수면 위에 '수'를 추가해준다. 

function returnStr2(n) {
  return "수박".repeat(n/2) + (n % 2 === 1 ? "수" : "");
}

console.log(returnStr(3)) //수박수
console.log(returnStr(4)) //수박수박