알고리즘/프로그래머스
** 조이스틱 **
베리영young
2024. 2. 14. 00:12
ㅠㅠㅠ
import java.util.*;
import java.io.*;
class Solution {
public int solution(String name) {
//각 글자가 돌아가는 횟수의 합
int answer = 0;
answer = countEach(name, answer);
int moveCnt = name.length()-1; //그냥 쭉 가는 거부터 시작
for(int i=0; i<name.length(); i++) {
//연속 A
int next = i+1;
while(next < name.length() && name.charAt(next)=='A')
next++;
moveCnt = Math.min( moveCnt, (i*2) + name.length()-next );
moveCnt = Math.min( moveCnt, (name.length()-next)*2 + i );
}
return answer + moveCnt;
}
//
public int countEach(String name, int answer) {
for(int i=0; i<name.length(); i++) {
char c = name.charAt(i);
answer += Math.min(c-'A', 'Z'-c+1);
}
return answer;
}
}