Problem
Solution
문자열을 제일 먼저 첫 글자를 읽고 첫 글자와 다른 글자의 갯수가 같으면 문자열을 분리하고 다르면 갯수가 같아질 때까지 카운트하여 최종으로 나눠진 문자열 갯수를 구하는 문제이다.
1. 첫 글자가 나오는 횟수를 count, 다른 글자가 나오는 횟수를 diff로 선언하여 카운팅한다.
2. for문을 사용하여 s의 길이만큼 반복해주면 된다.
3. 첫 글자를 first에 넣고, 뒤에 글자를 temp에 넣은 후 같으면 count++ 다르면 diff++을 해주면서 count와 diff가 같아질 때까지 비교한다.
4. count와 diff가 같으면 first는 temp로 바뀌고 다시 answer++을 해준다.
5. for문을 다 반복한 후 answer을 리턴해주면 끝 ~
class Solution {
public int solution(String s) {
int answer = 1;
int count = 1;
int diff = 0;
int first = s.charAt(0) - 'a';
for(int i = 1; i < s.length(); i++) {
int temp = s.charAt(i) - 'a';
if(count == diff) {
answer++;
first = temp;
count = 1;
diff = 0;
} else {
if(first == temp) {
count++;
} else {
diff++;
}
}
}
return answer;
}
}
마치며
Lv1 문제라서 그런지 어려운 문제는 아니였다. 더 깔끔한 코드나 더 좋은 코드는 언제든 피드백 주시면 감사하겠습니다 :)
반응형
'백준 Algorithm' 카테고리의 다른 글
[프로그래머스] 이진 변환 반복하기 Java 풀이 (0) | 2023.04.06 |
---|---|
[프로그래머스] 다음 큰 숫자 Java 풀이 (0) | 2023.04.05 |
[프로그래머스] 대충 만든 자판 Java 풀이 (2) | 2023.03.13 |
[프로그래머스] 둘만의 암호 Java 풀이 (0) | 2023.03.09 |
[LeetCode - Data Structure II] 15. 3Sum (0) | 2022.11.10 |