프로그래머스(Programmers)
프로그래머스 조이스틱 C++
cosmohoo
2022. 3. 22. 00:50
반응형
제한 사항
- name은 알파벳 대문자로만 이루어져 있습니다.
- name의 길이는 1 이상 20 이하입니다.
입출력 예
name return
"JEROEN" | 56 |
"JAN" | 23 |
=> 풀이는 아래 그림으로 첨부하겠습니다.
#include <algorithm>
#include <string>
using namespace std;
int solution(string name) {
int answer = 0;
int n = name.length();
int turn = n - 1; //조이스틱을 한 방향으로 쭉 움직였을 때
for (int i = 0; i < n; i++) {
if (name[i] - 'A' < 14) answer += name[i] - 'A';
else answer += 'Z' - name[i] + 1;
int ind = i + 1;
while (ind < n && name[ind] == 'A') ind++;
turn = min(turn, i + n - ind + min(i, n - ind));
}
answer += turn;
return answer;
}
반응형