728x90
https://www.acmicpc.net/problem/19564
19564번: 반복
muse가 입력하고자 하는 글 $S$가 주어진다. 이 글은 알파벳 소문자만으로 이루어져 있으며, 길이는 $L$이다. ($1 \le L \le 10^5$)
www.acmicpc.net
p o l y m a t h
뒤에 있는 문자가 현재 문자보다 크면 그 문자들은 abcdefghijklmnopqrstuvwxyz 한 번으로 가능하다.
그러므로 문자열을 돌면서 해당 문자가 다음 문자보다 큰지 확인하면서 크면 카운팅.
같은 경우에도 카운팅해야 한다. abcdefghijklmnopqrstuvwxyz 에는 각 문자가 하나씩밖에 안 들어가기 때문
ans에 +1 을 한 이유는, for문 안에서 (예) p~h 사이에서 abcdefghijklmnopqrstuvwxyz를 몇 번 입력하는지를 카운팅 하는 것이므로
마지막 h를 위한 abcdefghijklmnopqrstuvwxyz 입력이 이루어져야 하기 때문
#include <iostream>
#include <algorithm>
using namespace std;
int main(){
ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
string s;
cin >> s;
int len = s.size(), ans=0;
for(int i=0; i<len-1; i++){
int n = s[i] - '0';
int m = s[i+1] - '0';
if(n >= m) ans++;
}
cout << ans+1 << '\n';
return 0;
}
728x90
'알고리즘 > 백준' 카테고리의 다른 글
[백준/c++] 6550번: 부분 문자열 (0) | 2022.07.12 |
---|---|
[백준/c++] 3135번: 라디오 (0) | 2022.07.12 |
[백준/c++] 14655번: 욱제는 도박쟁이야! (0) | 2022.07.11 |
[백준/c++] 13305번: 주유소 (0) | 2022.07.10 |
[백준/c++] 16435번: 스네이크버드 (0) | 2022.07.09 |