[프로그래머스] Lv1 문자열 나누기

changi123·2023년 8월 20일
0
post-thumbnail

문제설명

해결방안

(1) 체크할 문자의 개수와 다른 문자의 개수가 같아지면 그때 카운트 하자.

코드

import java.util.*;

class Solution {
    public int solution(String s) {
          int answer = 0;
        
        int cnt = 0; 
        int cnt2 = 0;
        char first = s.charAt(0);
        for(int i= 0; i < s.length();i++) {
        	if(first == s.charAt(i)) {
        		cnt++;
        	} else {
        		cnt2++;
        	}
        	
        	if(cnt == cnt2) {        		
        		answer++;
        		if(i == s.length()-1) {
        			return answer;
        		}
        		first = s.charAt(i+1);
        		cnt = 0;
        		cnt2 = 0;
        	} else if(i == s.length()-1) {
        		answer++;
        	}
        		
   
        }
        return answer;
        
    }
}

내 코드 설명

(1) 체크할 문자의 개수와 다른 문자의 개수를 체크하여 answer 결과를 증가시켰다.
(2) 주어진 문자열의 길이가 홀수일 때와 짝수일 때를 생각하여 증가시켰다.

다른 사람 풀이


class Solution {
    public int solution(String s) {
        int answer = 1;

        char x, y;
        int xCnt, yCnt;
        for(int i = 0; i < s.length(); ){
            x = s.charAt(i);
            xCnt = 1;
            yCnt = 0;
            int j = i + 1;
            for(; j < s.length(); j++){
                y = s.charAt(j);
                if(x == y) xCnt++;
                else yCnt++;
                if(xCnt == yCnt){
                    i = j + 1;
                    if(j != s.length() - 1) answer++;
                    break;
                }
            }
            if(j == s.length()) break;
        }

        return answer;
    }
}

다른 사람 코드 설명

(1) 나와 같이 개수를 비교하여 문자열의 길이를 고려하여 if else를 줬다.

느낀점

처음에 문제를 이해하지 못해서 시간이 좀 걸렸다. 문제 난이도가 뒤로 갈수록 문제풀이보다 문제해석을 먼저 잘 해야겠다고 느꼈다..!

profile
개발자 홍찬기 꾸준한 사람이 되자

0개의 댓글

관련 채용 정보