[프로그래머스] 이상한 문자 만들기 (JavaScript)

구미·2021년 6월 26일
0

알고리즘

목록 보기
11/25

제출한 코드

function solution(s) {
    let answer = [];
    let count = 0;
    
    for (let i = 0; i < s.length; i++) {
        if (count % 2 === 0) {
            answer.push(s[i].toUpperCase());
            count++;
        } else {
            answer.push(s[i].toLowerCase());
            count++;
        }
        if (s[i] === ' ') {
            // answer.push(' ');
            count = 0;
        }
    }

    return answer.join('');
}

처음에는 보고 어떻게 풀지 싶었는데... 아침에 머리 감다가 불현듯 '공백을 기준으로 초기화되는 변수가 하나 있으면 되지 않을까' 하는 아이디어가 떠올랐고 결국 문제를 풀어낼 수 있었다 ㅎㅎ

어레이와 join 함수를 사용했기 때문에 공백이 나올 때 answer 어레이에도 공백 문자를 담아주어야 한다고 생각해서 현재 주석 처리한 부분을 작성했었는데, 다시 보니 s[i]가 공백인지 확인하기 전에 if ... else 구문에서 이미 공백 부분이 answer.push(s[i].toLowerCase()) 코드를 통해 answer 어레이에 담기고 있었다.

일부를 삭제하고 정답 처리를 받기는 했지만 의도했던 방식은 아니어서 코드를 수정했다. 다른 풀이를 참고해보니 어레이를 굳이 사용하지 않고 문자열에 문자를 더하는 방식으로 문제를 풀 수 있을 것 같아서 그 부분도 수정했다.

수정한 코드

function solution(s) {
    let answer = '';
    let count = 0;
    
    for (let i = 0; i < s.length; i++) {
        if (s[i] === ' ') {
            answer += ' ';
            count = 0;
        } else if (count % 2 === 0) {
            answer += s[i].toUpperCase();
            count++;
        } else {
            answer += s[i].toLowerCase();
            count++;
        }
    }

    return answer;

문제 출처

https://programmers.co.kr/learn/courses/30/lessons/12930#

profile
디지털 노마드를 꿈꾸며! 🦄 🌈

0개의 댓글