[프로그래머스] Lv.1 문자열 나누기.java

hgghfgf·2023년 5월 20일
0

프로그래머스

목록 보기
80/227

문자열 나누기.java

class Solution {
    public int solution(String s) {
        char first = s.charAt(0);
		int firstNum = 0;
		int diff = 0;
		int result = 0;
		for (int i = 0; i < s.length(); i++) {
			if (firstNum == diff) {
				result++;
				first = s.charAt(i);
			}
			if (s.charAt(i) == first) firstNum++;
			else diff++;
		}
		return result;
    }
}

first는 첫 번째 문자를 저장하는 변수입니다. 초기값은 문자열 s의 첫 번째 문자입니다.

firstNum은 현재까지 읽은 문자열에서 first와 같은 글자의 개수를 나타냅니다. 초기값은 0으로 설정합니다.

diff는 현재까지 읽은 문자열에서 first와 다른 글자의 개수를 나타냅니다. 초기값은 0으로 설정합니다.

result는 분해한 문자열의 개수를 나타냅니다. 초기값은 0으로 설정합니다.

반복문을 사용하여 문자열 s를 왼쪽에서 오른쪽으로 읽어나갑니다. i는 0부터 시작하여 s의 길이-1까지 반복됩니다.

firstNum과 diff가 같아진다면, 지금까지 읽은 문자열을 분리한 것이므로 result를 1 증가시키고, first를 현재 문자 s.charAt(i)로 업데이트합니다.

현재 문자 s.charAt(i)가 first와 같다면 firstNum을 1 증가시킵니다.

그 외의 경우에는 diff를 1 증가시킵니다.

반복문이 끝나면, 분해한 문자열의 개수인 result를 반환합니다.

출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges

0개의 댓글