https://programmers.co.kr/learn/courses/30/lessons/42860
*** 잘 모르겠어서 해설 확인
function solution(name) {
var answer = 0;
var alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'.split('');
var arr = name.split('');
// 1. 위아래 이동 최소값
// 메소드를 최대한 활용하자! - charCodeAt();
// 알파벳 배열 - index 12이하면 위로, 이상이면 아래로 조작이 최소
for (var i = 0; i < name.length; i++) {
console.log('i', i);
var newArr = arr.concat();
var target = name[i];
if (alphabet.indexOf(target) < 13) {
answer = answer + alphabet.indexOf(target);
} else {
answer = answer + (26 - alphabet.indexOf(target));
}
console.log(answer);
// 2. 좌우 이동 최소값 - A가 나타나는 경우
// 현 글자의 좌우에서 A아닌 글자를 를 더 빨리 만나는 쪽으로 이동하기
// = A를 더 늦게 만나는 쪽으로 이동하기
var reverseLength = 0;
var length = 0;
for (let i=1; i < name.length; i++) {
if (name[i] !== 'A') {
reverseLength = name.length - i;
break;
}
}
for (let i=name.length; i > 0; i--) {
if (name[i] !== 'A') {
length = i;
break;
}
}
}
if(length < reverseLength){
answer = answer + length;
} else {
answer = answer + reverseLength;
}
return answer;
}
문자열 위치 비교시 method
charCodeAt();
charAt();