프로그래머스 알고리즘 문제풀이 lvl.1 - 수박수박수박수박수박수?

Jung Hyun Kim·2021년 1월 11일
1
post-thumbnail

1주 1알고리즘 문제 풀기👆

문제

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

나의 풀이

  1. 우선 전달받은 n/2 만큼 수박이 있고, 1이거나 홀수이면 n/2한 수 에 '수'가 더 붙은거니까 for 문을 돌려서 n/2만큼 수박을 concat으로 string 뒤에 추가해주고, n이 홀수 일경우 뒤에 수를 더 붙여 준다.
function solution(n) {
  let answer = "";
  for (i = 1; i <= n / 2; i++) {
    answer = answer.concat("수박");
  }
  if (n % 2) {
    answer = answer.concat("수");
  }
  return answer;
}

좋은 다른 예시 및 풀이법

프로그래머스에서 좋아요를 많이 받은 정답으로 비교하기

  • repeat함수는 아래와 같이 작용한다.
'abc'.repeat(1)     // 'abc'
'abc'.repeat(2)     // 'abcabc'
'abc'.repeat(3.5)   // 'abcabcabc' (count will be converted to integer)
  • 해당 함수를 아래와 같이 적용해서, n/2만큼 수박을 반복해주고, n이 홀수이면 수를 뒤에 붙이는데 string을 +로 더해줄수 있어서 더깔끔한 코드가 완성된다!
  • 예를 들어 '수박'.repeat(2)+'수' 이렇게 string 끼리 더해주면 '수박수박수'를 리턴하게 한다.
const waterMelon = (n) => {
  return "수박".repeat(n / 2) + (n % 2 === 1 ? "수" : "");
};

느낀점

repeat method를 몰랐어서, 더 군더더기 있는 코드를 생각해 냈었는데, 좋은 예시 보면서 안쓰던 함수도 눈여겨 보고 사용해야 겠다! 🤗🤗

profile
코린이 프론트엔드 개발자💻💛🤙🏼

0개의 댓글