프로그래머스

[코딩테스트 연습] 코드 처리하기 - Lv.0

yujin0517 2023. 5. 6. 01:01

코드 처리하기 

 

<코드>

class Solution {
    public String solution(String code) {
        String answer = "";
        
        int mode = 0;
        
        for(int i = 0; i < code.length(); i++) {
            if(code.charAt(i) == '1'){
                mode = 1 - mode;
            } else if(i % 2 == mode) {
                answer += code.charAt(i);
            }
        }
        
        if(answer.equals("")) answer = "EMPTY";
        
        return answer;
    }
}

 

 

<문제 풀이>

주어진 code 문자열의 길이만큼 반복문을 진행한다. 

조건문을 통해 문자가 1인지 아닌지 먼저 판단한다. 문자가 1이면 mode를 0 -> 1, 1 -> 0으로 변환한다. 

문자가 1이 아니라면, mode == 1 일 때는 홀수번째 문자를 mode == 0 일 때는 짝수번째 문자를 answer의 뒤에 추가한다. 

마지막으로 answer의 문자열이 빈 문자열일 경우 "EMPTY"를 넣어준다.

 

처음 코드를 작성할 때는 mode의 값이 1인지 0인지 판단한 뒤 idx 값이 홀수인지 짝수인지를 다시 판단하고 answer의 뒤에 문자를 추가했는데, 다른 풀이를 참고하니 'i % 2 == mode' 조건식을 사용하여 위의 2개의 조건을 한 번에 찾을 수 있었다.