- 회고
65. 문자열 나누기 : https://school.programmers.co.kr/learn/courses/30/lessons/140108
- 풀이 과정
class Solution {
public int solution(String S) {
int answer = 0;
int i = 0;
outLoop:
while(i < S.length()) {
if(i == S.length() - 1){
answer++;
break;
}
char x = S.charAt(i);
int xCnt = 1;
int yCnt = 0;
for(int j = i + 1; j < S.length(); j++){
char y = S.charAt(j);
if(x == y){
xCnt++;
}else{
yCnt++;
}
if(xCnt == yCnt) {
answer++;
if (j < S.length() - 1) {
i = j + 1;
break;
}else{
break outLoop;
}
}else if(xCnt != yCnt && j == S.length() - 1){
answer++;
break outLoop;
}
}
}
return answer;
}
}
- i가 마지막 글자이면 종료하고 +1
- 문자 x를 선언하고 xCnt = 1로 시작
- 다음 글자를 비교하면서 xCnt, Ycnt의 경우를 비교하며 증가
- xCnt = yCnt이면 answer을 증가시키고 x를 y다음글자로 변경하면서 반복
- j는 마지막 글자 전까지 반복, 마지막 글자면 전체 반복문을 빠져나옴
- 두 cnt가 같지 않은데 j가 마지막 글자면 그대로 종료하고 answer증가
※ 중간 중간 break을 통한 경우의 수 관리가 어려웠다.
- 진행
일자 | 완료 번호 |
24.07.16 ~ 24.07.31 | 1~63 |
24.08.01 | 64 |
24.08.02 | 65 |
'Java & Spring > 코딩테스트' 카테고리의 다른 글
17일차 - 알고리즘 코드카타 (0) | 2024.08.06 |
---|---|
16일차 - 알고리즘 코드카타 (0) | 2024.08.06 |
14일차 - 알고리즘 코드카타 (0) | 2024.08.01 |
13일차 - 알고리즘 코드카타(시간초과) (0) | 2024.07.31 |
12일차 - 알고리즘 코드카타(실패) (0) | 2024.07.31 |