쵼쥬 2021. 11. 22. 21:10


내 코드

import java.util.*;

class Solution {
    
    public int solution(String name) {
            
        int answer = 0;
        int cnt = 0;
        int len = name.length();
        int[] arr = new int[len]; 
        
        for(int i = 0; i< len; i++){
            int x = name.charAt(i) - 'A';
            if(x > 13)
                arr[i] = 26 - x;
            else
                arr[i] = x;
            answer += arr[i];
            if(arr[i] != 0)
                cnt++;
        }

        int index = 0;
        int start = 0;
        
        if(arr[0] != 0){
            start = 1;
            arr[0] = 0;
        }
        
        for(int i = start; i < cnt; i++){
            int right = (index + 1) % len;
            int left = (index - 1 + len) % len;
            
            while(true){
                answer++;
                if(arr[right] != 0){
                    arr[right] = 0;
                    index = right;
                    break;
                }
                else 
                    right = (right + 1) % len;
                
                if(arr[left] != 0){
                    arr[left] = 0;
                    index = left;
                    break;
                }
                else
                    left = (left - 1 + len) % len;
            }            
        }
        
        return answer;
    }
}