백준/C++
[Baekjoon/C++] 17288번 - 3개만!
베리._.
2025. 5. 27. 14:47
[백준] Baekjoon Online Judge
문제
0보다 크거나 같고, 9보다 작거나 같은 숫자로 이루어진 문자열 S에서 연속된 세 숫자가 몇 번 등장하는지 출력하라. 단, 네 숫자 이상이 연속일 경우에는 그 일부를 세지 않고, 연속된 세 숫자는 오름차순이어야 한다.
입력
첫째 줄에 문자열 S(3 ≤ S의 길이 ≤ 100)가 주어진다.
출력
연속된 세 숫자가 등장한 횟수를 출력한다.
풀이
#include <iostream>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
string s;
cin >> s;
int result = 0;
int cnt = 1;
for (int i = 1; i < s.length(); i++) {
if (s[i - 1] + 1 == s[i]) cnt++;
else {
if (cnt == 3) result++;
cnt = 1;
}
}
if (cnt == 3) result++;
cout << result << '\n';
return 0;
}
오름차순으로 연속된 숫자가 3개 나온 경우에만 result에 +1을 한다.