프로그래머스 코드 처리하기 Lv.0
KUKJIN LEE • 2일 전 작성
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;
}
-
초기 설정
우선mode
의 상태를 확인하고 조작할 수 있도록mode
를 선언합니다.
문제 설명에 따르면,mode
의 초기값은false
로 설정해야 합니다. -
문자열 순회
문자열code
를 순회하며 각 문자를 확인합니다.
순회 중에code[i]
가"1"
인 경우,!mode
를 사용해 상태를 반대로 토글합니다.- 예를 들어,
mode === false
라면true
로 변경하고,mode === true
라면false
로 변경됩니다.
- 예를 들어,
-
조건 처리
mode === false
일 때: 인덱스가 짝수(i % 2 === 0
)인 경우,code[i]
를answer
에 추가합니다.mode === true
일 때: 인덱스가 홀수(i % 2 !== 0
)인 경우,code[i]
를answer
에 추가합니다.
-
빈 문자열 처리
문제의 마지막 조건에 따르면, 결과 문자열answer
가 빈 문자열일 경우"EMPTY"
를 반환해야 합니다.
이를 처리하기 위해, 반복문 종료 후answer
의 길이를 확인하여 빈 문자열이면"EMPTY"
를 반환합니다. -
결과
모든 조건을 만족한 결과 문자열answer
를 반환하면 문제를 해결할 수 있습니다. -
문제의 핵심
이 문제의 핵심은 다음 세 가지 능력을 검증하는 데 있습니다.- 토글 상태를 자유롭게 다룰 수 있는지
- 인덱스의 홀수/짝수를 정확히 구분할 수 있는지
- 빈 문자열 여부를 확인하고 적절히 처리할 수 있는지