#include <string>
#include <vector>
using namespace std;
int solution(string name) {
int answer = 0;
for (int i = 0; i < name.size(); i++) {
int tmp = name[i] - 'A';
if(name[i] == 'A') {
answer += 1;
goto SKIP;
}
if (tmp > 13) {
tmp = 26 - tmp;
}
answer += tmp;
SKIP:
if(i == name.size() - 1) {
break;
}
//다음 이동을 어떻게 할지 정함
int target = i + 1;
while (name[target] == 'A' && target < name.size() - 1) {
target += 1;
}
int reverse = name.size() - 1;
while (name[reverse] == 'A' && reverse > target) {
reverse -= 1;
}
if (target - i > i + 1 + name.size() - 1 - reverse) {
i = target - 1;
answer += target - i;
} else {
i = reverse - 1;
answer += i + 1 + name.size() - 1 - reverse;
}
}
return --answer;
}
'프로그래밍' 카테고리의 다른 글
DirectDraw 2 (0) | 2021.06.10 |
---|---|
Ruby 1 - 설치, 출력 puts, 문자열('', ""), 인터프리트 (0) | 2021.06.10 |
DirectDraw 프로그래밍 1 (0) | 2021.06.08 |
5일 - 체육복(탐욕, set) (0) | 2021.06.08 |
4일 - 위장(map,set) (0) | 2021.06.07 |