본문 바로가기

코딩테스트/JAVA

[코딩테스트][JAVA] 코드 처리하기

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

난이도 : LV0


내 풀이

class Solution {
    public String solution(String code) {
        String answer = "";
        
        String reg = "";
        boolean mode = false;
        String[] codeArray = code.split("");
        
        for(int i = 0; i < codeArray.length; i++){
            if(codeArray[i].equals("1")){
                if(mode) {
                    mode = false;
                } else {
                    mode = true;
                }
                continue;
            }
                
            if(!mode){
                if(i % 2 == 0){
                    reg += codeArray[i];
                }
            } else {
                if(i % 2 != 0){
                    reg += codeArray[i];
                }
            }
        }
        answer = reg.equals("") ? "EMPTY" : reg;
        return answer;
    }
}

 


다른 사람 풀이

class Solution {
    public String solution(String code) {
    	// 결과 문자열을 저장할 StringBuilder 객체 생성
        StringBuilder answer = new StringBuilder();
        // 문자 필터링 모드 설정 (0 또는 1)
        int mode = 0;
        
        for (int i = 0; i < code.length(); i++) {
        	// 현재 문자 가져오기
            char current = code.charAt(i);
            
            // '1'인 경우, 모드 변경
            if (current == '1') {
                mode = mode == 0 ? 1 : 0;
                continue;
            }
            if (i % 2 == mode) {
                answer.append(current);
            }
        }
        return answer.length() == 0 ? "EMPTY" : answer.toString();
    }
}

Java StringBuilder Class

- https://www.codejava.net/java-core/the-java-language/why-use-stringbuffer-and-stringbuilder-in-java

- https://codesign.tistory.com/88

 

Java StringBuilder Method

- .append(): 문자열을 추가 

- .length(): 길이를 반환

- .insert(int index, String str): index위치에 문자열을 삽입

- .replace(int start, int end, String str): 지정된 범위 내의 문자열을 주어진 문자열로 대체

...