function solution(name) {
let minMove = name.length-1
for(let i = 1; i < name.length; i++) {
if(name[i] == 'A') {
let rightLeng = i+1;
for(let j = i+1; j< name.length; j++) {
rightLeng = j
if(name[j] !== 'A') break;
}
let left = i-1;
let right = name.length-rightLeng;
minMove = Math.min(minMove, left > right ? left + right*2 : left*2 + right);
i = rightLeng;
}
}
let alphabetMove = 0;
for(let i = 0; i < name.length; i++) {
let ascii = name[i].charCodeAt(0) - 'A'.charCodeAt(0);
alphabetMove += ascii > 13 ? 26 - ascii : ascii
}
return alphabetMove + minMove
}
A값 개수와 위치를 고려하여 조이스틱을 최소이동할 수 있는 방법을 알아야 풀 수 있는 문제
다른사람 풀이를 보고 어느정도 이해를 하고 풀었지만
뭔가 확 와닿지않는다 계속 찜찜하다..