
풀이
- 먼저 비교를 위해 첫 번째 문자를 StringBuilder에 넣었다.
- 다음꺼부터 오름차순이 되어야함으로 앞값 == 뒤값-1 을 비교 // 만약 StringBuilder가 비어있다고 해도 비교할 첫 번째값을 넣어줘야함
- 이후 만약 오름차순 3개가 완성이된다면 cnt++ // StringBuilder를 비우고 다시 비교할 뒤에 값을 append()
- 만약 위에 반복문이 끝났는데 sb가 비어있지 않고 길이가 3이라면 cnt에 최종적으로 추가 // 아니라면 그대로 cnt 출력
오답이었던 이유
- 여기서 조건을 sb.length() > 0 으로 줘서 ..
if( sb.length() == 3 ) {
System.out.println(cnt+1);
} else {
System.out.println(cnt);
}
package problem_solving.string;
import java.util.Scanner;
public class BaekJoon_17288 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.next();
int cnt = 0 ;
StringBuilder sb = new StringBuilder();
sb.append(s.charAt(0));
for(int i = 1 ; i< s.length();i++) {
if( s.charAt(i-1) == s.charAt(i)-1 || sb.length()==0) {
sb.append(s.charAt(i));
} else {
if( sb.length() == 3 ) {
cnt++;
sb = new StringBuilder();
sb.append(s.charAt(i));
} else if( sb.length() > 3 ) {
sb = new StringBuilder();
sb.append(s.charAt(i));
}
}
}
if( sb.length() == 3 ) {
System.out.println(cnt+1);
} else {
System.out.println(cnt);
}
}
}