[코.기.트] 코드 처리하기

리프깅·2023년 8월 7일

프로그래머스

목록 보기
28/29

✔ 코드 처리하기 문제 보기


💻 코드

function solution(code) {
    let mode = 0; let answer = ''
    
    let empty = code.split('').filter(i=>i!=='1').length
    if(empty==0) return 'EMPTY'
    
    for(let i=0; i<code.length; i++) {
        if(code[i] == '1') { mode == 0 ? mode = 1 : mode = 0 }
        
        if(mode =='0' && code[i] !== '1') {
            i%2==0 ? answer += code[i] : answer += '2'
        } else if(mode == '1' && code[i]!='1') {
            i%2==1 ? answer += code[i] : answer += '2'
        }
    }
    return answer.split('').filter(i=>i!=='2').join('')
}

👀 설명

mode는 현재 모드를 나타낸다. 처리할 문자열이 없는 경우를 출력하기 위해 filter를 사용하여 1이 아닌 문자열의 길이를 저장하고, empty가 0이라면 EMPTY를 리턴한다.
for문에서는 code를 순회한다. 만약 인덱스 값이 1이라면 모드를 변경한다. 그리고 모드에 따라 설명대로 계산한다. 모드에 맞지 않는다면 2를 추가하고, 마지막 리턴할 때 2를 제외한 문자열을 리턴한다.

profile
대학교 마지막 학기 공부기록

0개의 댓글