코딩 테스트/프로그래머스

Lv.0 코드 처리하기

whooooo 2023. 12. 6. 00:17

✏️ 문제

https://school.programmers.co.kr/learn/courses/30/lessons/181932

 

Python 

def solution(code):
    mode = 0 # 0과 1이 존재, False
    ret = ""

    for idx in range(0, len(code)) :
        str = code[idx]
        if str == "1" :
            mode = not mode
        else :
            if (idx % 2 == mode):
                ret += str

    
    return "EMPTY" if ret == "" else ret

 

 

다른 사람의 문제 풀이

미쳤다...

def solution(code):
    return "".join(code.split("1"))[::2] or "EMPTY"

 

 

Java

class Solution {
    public String solution(String code) {
        int mode = 0;
        String ret = "";
        for (int i = 0; i < code.length(); i++) {
            if (code.charAt(i) == '1') {
                mode = 1 - mode; // 0,1 값 변경
            } else {
                if (i % 2 == mode) ret += code.charAt(i);
            }
        }

        return "".equals(ret) ? "EMPTY" : ret;
    }
}