✏️기록하는 즐거움
article thumbnail

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

|  제출

1. 나의 풀이

function solution(n) {
  let answer = [];

  for (let i = 0; i < n; i++) {
    if (i % 2 === 0) {
      answer.push("수");
    } else {
      answer.push("박");
    }
  }

  return answer.join("");
}

 

2. 다른 사람의 풀이 참고

function solution(n) {
  return "수박".repeat(n / 2 + 1).slice(0, n);
}

 

|  풀이과정

입력받은 n이 홀수인지 짝수인지에 따라 빈 배열에 "수", "박"을 넣어주고, join 메서드를 사용해서 모든 배열 요소를 합친 값을 리턴해주었다.

 

다른 사람의 풀이를 보니 더 간단하게 풀 수 있었다. "수박" 을 ( n / 2 + 1 ) 만큼 반복한 문자열에서 0부터 n까지 잘라주면 원하는 결괏값을 얻을 수 있다.

 

|  개념

String.prototype.repeat()

  • 문자열을 지정한 횟수만큼 반복해 새로운 문자열을 반환한다.
  • 반복 횟수는 0보다 큰 양의 정수이며, 최대 문자열 크기를 넘으면 RangeError 발생

Array.prototype.slice()

  • 지정한 시작 인덱스부터 끝 인덱스를 제외하고 추출한 배열에 대한 얕은 복사본을 새로운 배열 객체로 반환한다.
  • String 및 Number 객체가 아닌 문자열과 숫자의 경우 문자열과 숫자를 새 배열에 복사하고 slice 메서드가 실행된다.

 

profile

✏️기록하는 즐거움

@nor_coding

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!