fragment-header
fragment-markdown
홈
로그인
로그아웃
내 블로그
설정
로그인
백준 34553 (C++) 알파벳 점수 계산기
최초 업로드: 2025-10-02 15:12:31
최근 수정 시간: 2025-10-02 15:12:31
게시자: rlatjwls3333
카테고리: 백준
조회수: 4
# [Bronze III] 알파벳 점수 계산기 [문제 링크](https://www.acmicpc.net/problem/34553) ## 문제 설명 <p>소문자 알파벳 (a-z)으로 이루어진 문자열이 주어집니다. 문자열의 각 문자는 "연속된 오름차순 길이"를 점수로 가집니다.</p> <p>점수 계산 규칙은 다음과 같습니다:</p> <ul> <li>문자열의 첫 번째 문자는 항상 $1$점입니다.</li> <li>두 번째 문자부터는 인접한 이전 문자와 비교합니다: <ul> <li>현재 문자가 인접한 이전 문자보다 사전 순서상 뒤에 있다면, 현재 문자의 점수는 인접한 이전 문자의 점수에 $1$을 더한 값입니다.</li> <li>그 외의 경우, 현재 문자의 점수는 $1$입니다.</li> </ul> </li> <li>문자열의 모든 문자에 대해 구한 점수를 합한 값을 출력해야 합니다.</li> </ul> <p>예를 들어, 문자열 <code>abkcf</code>이 있을 때 계산 과정은 다음과 같습니다.</p> <p>계산 과정:</p> <ul> <li><code>a</code>: $1$점</li> <li><code>b</code>: 이전(a)보다 뒤 $\rightarrow 2$점</li> <li><code>k</code>: 이전(b)보다 뒤 $\rightarrow 3$점</li> <li><code>c</code>: 이전(k)보다 앞 $\rightarrow 1$점</li> <li><code>f</code>: 이전(c)보다 뒤 $\rightarrow 2$점</li> </ul> <p>총합 = $1 + 2 + 3 + 1 + 2 = 9$</p> ## 입력 <p>영소문자로 이루어진 문자열 $S$가 주어집니다. ($1 \le |S| \le 100\,000$)</p> ## 출력 <p>문자열의 총 점수를 출력해주세요.</p> ## 풀이 그대로 구현하면 된다. ``` c++ #include<bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); string s; cin >> s; int sum=1, last=1; for(int i=1;i<s.length();i++) { if(s[i]>s[i-1]) last++; else last=1; sum += last; } cout << sum; } ```