반응형
이 버전에서는 TOC를 지원하지 않습니다. (ex. 모바일)
문제
https://school.programmers.co.kr/learn/courses/30/lessons/140108
문제 내용은 지적 재산 보호 차원에서 가져오지 않고 풀이만 공유드리도록 하겠습니다.
풀이
제 풀이가 무조건적으로 맞는 것도 최적의 답변도 아니지만, 이런 풀이도 있다는 차원에서 작성해 보며, 좀 더 나은 방법이 있다면 이야기해 주셔도 도움 될 것 같습니다.
class Solution {
public int solution(String s) {
int answer = 0;
// Step. 변수 선언
Character stCh = null; // 시작 문자열
int stCount = 0; // 시작 문자열 개수
int othCount = 0; // 다른 문자열 개수
// Step. 각 문자열 탐색
for(int i = 0; i < s.length(); i++){
char ch = s.charAt(i);
// Step. 시작 문자열이 없는 경우 (또는 이전 문자열이 분리된 경우)
if(stCh == null) stCh = ch;
if(stCh == ch) stCount++; // 시작 문자열과 같은 경우 시작 문자열 개수 +1
else othCount++; // 시작 문자열과 다른 경우 다른 문자열 개수 +1
// Step. 시작 문자열의 개수와 다른 문자열의 개수가 같아지는 경우
// 분리 (answer +1 / 시작 문자열 초기화 / 시작 문자열 개수 초기화 / 다른 문자열 개수 초기화)
if(stCount == othCount){
answer++;
stCh = null;
stCount = 0;
othCount = 0;
}
}
// Step. 일치 하지 않는 상태로 종료된 경우 answer + 1
if(stCh != null) answer++;
return answer;
}
}
반응형
'개발 창고 > Algorithm' 카테고리의 다른 글
[프로그래머스] 기사단원의 무기 - JAVA (62) | 2024.02.29 |
---|---|
[프로그래머스] 명예의 전당 (1) - JAVA (56) | 2024.02.28 |
[프로그래머스] 가장 가까운 같은 글자 - Java (66) | 2024.02.24 |
[프로그래머스] 크기가 작은 부분 문자열 - JAVA (55) | 2024.02.22 |
[프로그래머스] 개인정보 수집 유효기간 - JAVA (47) | 2024.02.21 |