문제 설명
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
풀이법
/*
start : 11:35
end : 12:40
1시간 지나도 못 품,
str.substring()의 매개변수 포함여부 헷갈렸음
*/
import java.util.ArrayList;
import java.util.List;
class Solution {
public int solution(String s) {
List<String> list = new ArrayList<>();
while (!s.equals("")) { // while(check)
char firstChar = s.charAt(0);
int firstCharCount = 0;
int notFirstCharCount = 0;
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == firstChar) {
firstCharCount++;
} else {
notFirstCharCount++;
}
if (firstCharCount == notFirstCharCount) {
list.add(s.substring(0, i+1));
s = s.substring(i+1); // s = s.substring(i+1, s.length());
break;
}
// 문자열 끝까지 갔는데도 firstCharCount != notFirstCharCount(너무 일찍 분리하거나 중간에 잘못된 타이밍에서 분리될 수 있다. 결정적인 분기점은 문자열을 끝까지 다 읽었는지 여부임)
if (i == s.length() - 1) {
list.add(s);
s = "";
}
}
}
return list.size();
}
}
- while문 조건문에서 매개변수 s가 ""되면 멈추기
- String substring(int begin) : 끝까지 포함
- String substring(int begin, int end) : end 포함 x
'👨💻 Coding Test' 카테고리의 다른 글
[SW Expert Academy/Java/D3] 1225.암호생성기 (0) | 2025.04.11 |
---|