조이스틱 자바스크립트

HyosikPark·2020년 11월 24일
0

알고리즘

목록 보기
36/72
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값 개수와 위치를 고려하여 조이스틱을 최소이동할 수 있는 방법을 알아야 풀 수 있는 문제
다른사람 풀이를 보고 어느정도 이해를 하고 풀었지만
뭔가 확 와닿지않는다 계속 찜찜하다..

참고

https://after-newmoon.tistory.com/60

0개의 댓글