[프로그래머스 Lv.2] 알고리즘 고득점 Kit 탐욕법(Greedy) - 조이스틱

김민지·2024년 3월 24일
0

✨ 정답 ✨

function solution(name){
    let answer=0;
      let min = name.length - 1;

    // 고려해야 할 점
    // 14번째부터는 뒤에서부터 세는 것이 빠름.
    // 다음 알파벳이 A라면 그냥 커서를 맨 오른쪽으로 이동하는게 나을듯
    for (let i=0;i<name.length;i++){
        let currentAlphabet = name.charCodeAt(i);
        if (currentAlphabet < 78){
            answer += currentAlphabet % 65;
        } else {
            answer += 91 - currentAlphabet;
        }
        let nextIndex=i+1;
        while(nextIndex < name.length && name.charCodeAt(nextIndex)===65){
            nextIndex+=1;
        }
        min = Math.min(
            min,
            i * 2 + name.length - nextIndex, 
            i + (name.length - nextIndex) * 2
        );
    }
     answer += min;
    return answer;
}

🧵 참고한 정답지 🧵

💡💡 기억해야 할 점 💡💡

profile
이건 대체 어떻게 만든 거지?

0개의 댓글

관련 채용 정보