728x90

첫 문자를 읽고 그 다음 문자를 읽어가면서 

첫 문자와 같은 문자와 같지 않은 문자의 수가 같아질때마나다 문자열을 분할하며 읽고 분할된 문자열의 개수를 반환 

 

public int solution(String s) {

int answer = 0;

char firstLetter = '0';

int count=0;

for(char c : s.toCharArray()) {

if(count==0) {

firstLetter = c;

answer++;

}

 

if(firstLetter==c) {

count++;

}else {

count--;

}

 

}

return answer;

}

문제를 이해하는데 시간이 좀 걸렸다; 

첫 문자열을 저장하고 이후 반복부터 첫 문자열과 같으면 count를 증가 첫문자열과 다르면 count를 감소하여 

count가 0이 되는 인덱스가 첫 문자와 같은 문자의 수와 같지 않은 문자의 수가 같게 되는 인덱스 이므로 

그 인덱스에서 문자열을 분할한다는 의미로 answer를 증가시킨다. 

문자열을 n번 분할하면 분할된 문자열은 n+1 개가 된다. 

여기서는 처음 firstLetter를 지정하면서 count가 answer를 증가시키기 때문에 나중에 증가시킬 필요 없다. 

'Java > Coding Test' 카테고리의 다른 글

다트 게임 문제 풀이  (0) 2023.10.04
실패율 문제 풀이  (0) 2023.10.01
대충 만든 자판 문제 풀이  (0) 2023.10.01
모의고사 문제 풀이  (0) 2023.09.30
개인정보 수집 유효 기간 문제 풀이  (0) 2023.09.28

+ Recent posts