프로그래머스 그리디 조이스틱 [JAVA] - 22년 8월 19일 ~ 20일

Denia·2022년 8월 19일
0

코딩테스트 준비

목록 보기
40/201

그리디 라고 해서 그리디로 풀려고 했는데 몇시간 동안 고생해도 답이 안나와서 포기하고 답 확인함
문제가 너무 어려워서 풀이를 한참동안 보고 이해한다고 고생했다.
https://yummy0102.tistory.com/359 참고함

package com.company;

// https://yummy0102.tistory.com/359 참고함

class Solution {
    public int solution(String name) {
        int answer = 0;
        int index;
        int move = name.length()-1;

        for(int i=0;i<name.length();i++) {
            answer += Math.min(name.charAt(i) - 'A', ('Z' + 1) - name.charAt(i));

            index = i+1;
            while(index<name.length() && name.charAt(index) == 'A') {
                index++;
            }
            move = Math.min(move, Math.min(i*2+name.length()-index,(name.length()-index)*2 + i));
        }
        return answer + move;
    }
}

profile
HW -> FW -> Web

0개의 댓글