본문 바로가기
부트캠프 개발일지 2023-2024/Algorithm 알고리즘

[Programmers] 알고리즘: 수박수박수박수박수박수?

by whereanna00 2023. 12. 12.
 

프로그래머스

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

programmers.co.kr

 

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

 


Approach

 

개선 전

- 처음에는 arr = ['수', '박'] 에서 하나씩 꺼내써야 하는지 아니면 a='수' b='박' 으로 따로 정의해서 문자열을 합쳐야할지 감이 잘 오지 않았다. 분명히 반복문을 써서 실행해야할 것 같았는데 아직 반복문에 대한 깊은 이해와 자주쓰지 않았던 나의 경험의 부족에서인지 문제를 푸는 방향성에서부터 막혔다.

 

개선 후

- for 반복문을 사용한 해결

i가 n 번 반복한다는 가정 안에, i가 짝수이면 '박'을 홀수면 '수'를 리턴하기

 

- repeat() + substring()

'수박'을 n번 반복하고, 0번째에서 n번쨰 인덱스까지의 문자열만 잘라서 리턴하기

 


 

function solution(n) {
    var answer = '';
    //반복문
    for(let i = 1; i <= n; i++){
        if(i % 2 === 0){
            answer +='박';
        } else {
            answer += '수';
        }
    }
    return answer;
}

 

function solution(n) {
    //반복, 문자열 자르기
    // repeat() 메서드는 문자열을 주어진 횟수만큼 반복해 붙인 새로운 문자열을 반환
    let answer ='수박'.repeat(n).substring(0,n);
    return answer;
}

참고

 

 

String.prototype.repeat() - JavaScript | MDN

repeat() 메서드는 문자열을 주어진 횟수만큼 반복해 붙인 새로운 문자열을 반환합니다.

developer.mozilla.org

 

String.prototype.substring() - JavaScript | MDN

substring() 메소드는 string 객체의 시작 인덱스로 부터 종료 인덱스 전 까지 문자열의 부분 문자열을 반환합니다.

developer.mozilla.org

 

728x90
반응형