수박수박수박 - 짝홀수 분리와 문자열 복사

조해빈·2023년 1월 3일
0

프로그래머스

목록 보기
13/15

수박수박수박수박수박수?

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

제한 조건
n은 길이 10,000이하인 자연수입니다.

입출력 예
n return
3 "수박수"
4 "수박수박"

풀이 과정

function solution(n) {
    let arr = ['수', '박'];
    arr = arr.reduce((prev, curr) => (arr[0]+arr[1]).repeat(n/2));
    return n%2?arr+arr[0]:arr;
}


기입 후 제출하는데 채점 시 통과가 안 되서 의외였다.

설마 해서 확인했더니 n===1인 경우 였다. 그래서 n/2와 n%2에 각각 소숫점 내림 함수를 붙였다. 그런데도 아래와 같이 solution(1)의 값이 undefined가 나와 재확인했다.

이는 기존의 배열 타입 변수 arr를 새 값으로 덮어씌우느라 배열 내용이 오류가 난 듯 했다.

function solution(n) {
    let arr = ['수', '박'];
    let str = arr.reduce( (prev, curr) => (arr[0]+arr[1]).repeat(Math.floor(n/2)) );
    return Math.floor(n%2)?str+arr[0]:str;
}


통과하였다.
다른 분들의 답안 맨 위에 핫한 답안 하나가 있었다.

댓글이 엄청 많았다...
문제 개편 이전인 듯 했다.
다른 답안들을 쭉 보니 다들 substring(0,n)을 많이 썼다.

profile
UE5 공부하는 블로그로 거처를 옮겼습니다!

0개의 댓글