#include <string>
#include <vector>
using namespace std;
int solution(string s) {
int answer = 0;
int pos = 0;
// 1. 문자열 전체를 검색한다.
while(pos < s.length()) {
int firstCount = 1;
int remainCount = 0;
// 2. 첫 문자부터 다음문자까지 검색한다.
for(int idx = pos + 1; idx < s.length(); idx++) {
if(s.at(pos) == s.at(idx)) firstCount+=1;
else remainCount += 1;
if(firstCount == remainCount) {
answer++;
pos = (idx+1);
break;
}
}
// 3. 문자열이 안 나눠졌다.
if(firstCount > remainCount) {
answer++;
break;
}
}
return answer;
}
풀이)
1. 문자열 전체를 검색한다.
2. 첫 문자부터 다음 문자까지 검색한다.
3. 문자열이 안 나눠진 경우
- 예시 : "a" , "aaaaa" , "aaaaab"
이번 문제에서 3번처럼 문자열이 안 나눠진 경우를 처리하는 것이 가장 중요한 것 같다.
'프로그래머스 > Level1' 카테고리의 다른 글
| [Level1] 키패드 누르기 (C++) (0) | 2023.02.24 |
|---|---|
| [Level1] 크레인 인형뽑기 게임 (C++) (0) | 2023.02.23 |
| [Level1] 명예의 전당 (1) (C++/Python) (0) | 2023.02.14 |
| [Level1] 실패율 (C++) (0) | 2023.02.10 |
| [Level1] 가장 가까운 같은 글자 (C++/Python) (0) | 2023.02.09 |