코린이의 소소한 공부노트

[프로그래머스/Lv.0] 코드 처리하기 본문

코딩테스트 풀이/JAVA

[프로그래머스/Lv.0] 코드 처리하기

무지맘 2023. 4. 25. 00:30

1. Input, Output, Example

code를 앞에서부터 읽으면서 mode에 따라 문자열 ret을 만들어낸다.

// 시작할 때 mode0이다.

// 1을 만나면 mode를 바꾼다.

// mode0일 때

// - code[idx]"1"이 아니면 idx가 짝수일 때만 retcode[idx]를 추가한다.

// - code[idx]"1"이면 mode0에서 1로 바꾼다.

// mode1일 때

// - code[idx]"1"이 아니면 idx가 홀수일 때만 retcode[idx]를 추가한다.

// - code[idx]"1"이면 mode1에서 0으로 바꾼다.

- 문자열 code를 통해 만들어진 문자열 ret을 반환

- 반환하려는 ret가 만약 빈 문자열이라면 대신 "EMPTY"를 반환

 

2. Constraint

1) 1 code의 길이 100,000

2) code는 알파벳 소문자 또는 "1"로 이루어진 문자열이다.

 

3. Code

1) 첫 코드(2023/04/25)

class Solution {
    public String solution(String code) {
        int mode = 0;
        String ret = "";
        for(int i=0 ; i<code.length() ; i++){
            char c = code.charAt(i);
            if(c=='1'){
                mode = mode==1 ? 0 : 1;
                continue;
            }
            if(mode==0 && i%2==0)
                ret += c;
            else if(mode==1 && i%2==1)
                ret += c;
        }
        return ret.length()!=0 ? ret : "EMPTY";
    }
}