코딩테스트

[프로그래머스/Java] 코드 처리하기

데메즈 2025. 7. 21. 18:54
반응형

class Solution {
    public String solution(String code) {
        String ret = "";
        int mode = 0;
        
        char[] codeArr = code.toCharArray();
        for(int i=0; i<codeArr.length; i++){
            if(codeArr[i] == '1'){
                mode = Math.abs(mode-1);
            } else if(i%2==0 && mode == 0){ //짝수인 경우
                ret += codeArr[i];
            } else if(i%2!=0 && mode == 1){ //홀수인 경우
                ret += codeArr[i];
            }
        }
        if(ret == "") ret = "EMPTY";
        
        return ret;
    }
}

 

다른 풀이
class Solution {
    public String solution(String code) {
        StringBuilder answer = new StringBuilder();
        int mode = 0;
        for (int i = 0; i < code.length(); i++) {
            char current = code.charAt(i);
            if (current == '1') {
                mode = mode == 0 ? 1 : 0;
                continue;
            }

            if (i % 2 == mode) {
                answer.append(current);
            }
        }
        return answer.length() == 0 ? "EMPTY" : answer.toString();
    }
}
반응형