

내 코드
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;
}
}
'코딩테스트 > [프로그래머스] 코딩테스트 연습' 카테고리의 다른 글
124 나라의 숫자 (0) | 2021.12.28 |
---|---|
구명보트 (0) | 2021.11.23 |
등굣길 (0) | 2021.11.22 |
N으로 표현 (0) | 2021.11.19 |
피로도 (0) | 2021.10.26 |