728x90
https://www.acmicpc.net/problem/18238
18238번: ZOAC 2
2019년 12월, 두 번째로 개최된 ZOAC의 오프닝을 맡은 성우는 누구보다 화려하게 ZOAC를 알리려 한다. 작년 ZOAC의 방식은 너무 식상하다고 생각한 성우는 문자열을 보여주는 새로운 규칙을 고안해
www.acmicpc.net
첫 번째 시작은 A이므로 cur에 넣어준다. 입력받은 문자열을 돌면서 각 문자들과의 길이를 알아내야 하는데
cnt1에 목표 문자(s[i])와 현재 문자(cur) 사이의 길이를 넣어주고 (오른쪽으로 돌아가기)
cnt2에 반대로 갔을 경우의 길이를 넣어준다. (왼쪽으로 돌아가기)
둘 중에 더 작은 값을 ans 답 변수에 넣어주고 cur를 갱신해준다.
#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 cnt1 = 0; int cnt2 = 0;
int ans = 0;
char cur = 'A';
for(int i=0; i<s.size(); i++){
cnt1 = abs(s[i] - cur); //현재 위치의 문자와의 목표 문자(s[i])와 길이
cnt2 = 26 - cnt1; //반대 방향
ans += min(cnt1, cnt2);
cur = s[i];
}
cout << ans << '\n';
return 0;
}
728x90
'알고리즘 > 백준' 카테고리의 다른 글
[백준/c++] 1439번: 뒤집기 (0) | 2022.07.09 |
---|---|
[백준/c++] 15881번: Pen Pineapple Apple Pen (0) | 2022.07.09 |
[백준/c++] 22864번: 피로도 (0) | 2022.07.09 |
[백준/c++] 14720번: 우유 축제 (0) | 2022.07.08 |
[백준/c++] 2810번: 컵홀더 (0) | 2022.07.08 |