프로그래머스 코드 처리하기 Lv.0

KUKJIN LEE's profile picture

KUKJIN LEE3주 전 작성

function solution(code) {
    let answer = '';
    let mode = false; 
    
    for (let i = 0; i < code.length; i++) {
        if (code[i] === "1") {
            mode = !mode; 
        } else {
            if (!mode && i % 2 === 0) {
                answer += code[i];
            } else if (mode && i % 2 !== 0) {
                answer += code[i];
            }
        }
    }
    
    if(answer.length < 1) {
        return "EMPTY"
    }
    
    return answer;
}

 

  1. 초기 설정
    우선 mode의 상태를 확인하고 조작할 수 있도록 mode를 선언합니다.
    문제 설명에 따르면, mode의 초기값은 false로 설정해야 합니다.

  2. 문자열 순회
    문자열 code를 순회하며 각 문자를 확인합니다.
    순회 중에 code[i]"1"인 경우, !mode를 사용해 상태를 반대로 토글합니다.

    • 예를 들어, mode === false라면 true로 변경하고,
      mode === true라면 false로 변경됩니다.
  3. 조건 처리

    • mode === false일 때: 인덱스가 짝수(i % 2 === 0)인 경우, code[i]answer에 추가합니다.
    • mode === true일 때: 인덱스가 홀수(i % 2 !== 0)인 경우, code[i]answer에 추가합니다.
  4. 빈 문자열 처리
    문제의 마지막 조건에 따르면, 결과 문자열 answer가 빈 문자열일 경우 "EMPTY"를 반환해야 합니다.
    이를 처리하기 위해, 반복문 종료 후 answer의 길이를 확인하여 빈 문자열이면 "EMPTY"를 반환합니다.

  5. 결과
    모든 조건을 만족한 결과 문자열 answer를 반환하면 문제를 해결할 수 있습니다.

  6. 문제의 핵심
    이 문제의 핵심은 다음 세 가지 능력을 검증하는 데 있습니다.

    • 토글 상태를 자유롭게 다룰 수 있는지
    • 인덱스의 홀수/짝수를 정확히 구분할 수 있는지
    • 빈 문자열 여부를 확인하고 적절히 처리할 수 있는지

New Tech Posts