🎈 문제
문제링크
🎈 제한사항
🎈 접근방법
- 해당 문자가 A로부터 오른쪽이 길지 왼쪽으로 길지 판단한다.
- 순서대로 가는 것과, 뒤로 돌아가는 것 비교 후 작은 쪽 선택
- 처음부터 뒷부분을 먼저 입력하는 것이 더 빠른 경우까지 고려한다.
🎈 코드
class Solution {
public int solution(String name) {
int answer = 0;
int min = name.length()-1;
for(int i=0; i<name.length(); i++){
char ch = name.charAt(i);
if(ch-'A' > 13){
answer += ('Z' - ch + 1);
}else{
answer += ch-'A';
}
int next = i + 1;
while(next < name.length() && name.charAt(next) == 'A'){
next++;
}
min = Math.min(min, i*2 + name.length() - next);
min = Math.min(min, i + (name.length() - next) * 2);
}
return answer+min;
}
}