알고리즘/백준

[백준/c++] 19564번: 반복

녕이 2022. 7. 11. 22:20
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