본문 바로가기
알고리즘 & 자료구조/백준

백준 18238

by 신재권 2022. 1. 2.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main18238 {

	public static void main(String[] args) throws IOException {
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String zoac = br.readLine();
		
		int time = 0;
		char s = 'A'; 
		// 1. 아스키코드를 사용해 풀이 
		// 2. 오른쪽으로 돌리는 횟수 = abs(가야되는 위치 - 현재위치)
		// 3. 왼쪽으로 돌리는 횟수 = 26 - 오른쪽으로 돌리는 횟수 
		// 4. 둘의 값을 비교해 최솟값을 더해주면 된다. 

		for(int i=0; i<zoac.length(); i++) {
			char tmp = zoac.charAt(i);
			int a = Math.abs(tmp - s); //오른쪽으로 돌리는 횟수 
			time += Math.min(a, 26 - a); // 오른쪽으로 돌리는 횟수 vs 왼쪽으로 돌리는 횟수 
			s = tmp;
		}
		System.out.println(time);
		
	}
	
	
}

'알고리즘 & 자료구조 > 백준' 카테고리의 다른 글

백준 2872  (0) 2022.01.04
백준 2865  (0) 2022.01.03
백준 17615  (0) 2022.01.01
백준 14754  (0) 2021.12.31
백준 17262  (0) 2021.12.30