매일 조금씩

프로그래머스 level1 : 문자열 나누기 - Java 본문

알고리즘

프로그래머스 level1 : 문자열 나누기 - Java

mezo 2023. 6. 5. 21:08
728x90
반응형

1. String[] 으로 만들어서 x와 비교, xcnt, noxcnt 같아지면 answer++

class Solution {
    public int solution(String s) {
        int answer = 0;
        int xcnt = 0;
        int noxcnt = 0;
        String[] c = s.split("");
        String x = c[0];
        int xidx = 0;
        for(int i = 0; i < c.length; i++){
            if(xcnt == 0){
                xidx = i;
                x = c[i];
            }
            
            if(x.equals(c[i])){
                xcnt++;
            }else{
                noxcnt++;
            }
            
            if(xcnt == noxcnt){
                answer++;
                xcnt = 0; 
                noxcnt = 0;
            }
        }
        
        if(xcnt != noxcnt){
            answer++;
        }
        
        return answer;
    }
}

 

2. toCharArray()로 char[]만들어서 x와 비교, x를 set하면서 answer++

class Solution {
    public int solution(String s) {
        int answer = 0;
        int same = 0;
        int diff = 0;
        char x = ' ';
        boolean setx = false;
        for(char c: s.toCharArray()){
            if(!setx){
                x = c;
                setx = true;
                answer++;
            } 
            if(x == c) same++;
            else diff++;
            if(same == diff){
                setx = false;
                same = 0; 
                diff = 0;
            }
        }
        return answer;
    }
}
728x90
반응형