백준/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을 한다.