반응형

@notepad_jj2

츄르사려고 코딩하는 코집사입니다.


1. [백준] 백준 25915번 연세여 사랑한다 자바(JAVA)

1) 문제번호 : 25915

 

2) 문제 출처

https://www.acmicpc.net/problem/25915

 

25915번: 연세여 사랑한다

훈규가 비밀번호를 모두 입력하기 위한 이동 거리의 최솟값을 출력한다.

www.acmicpc.net

 

2. 문제

여러분은 연세를 사랑하십니까?

연세인이 가장 사랑하는 응원곡,

사랑한다 연세여, 연세여 사랑한다...

고려대학교 학생 훈규는 2022 정기 연고전에서 열심히 응원을 하다가 정신을 잃고 깨어나 보니 연세대학교의 감옥에 갇혀 있었다. 훈규가 감옥을 탈출하기 위해서는 바닥에 깔린 비밀번호 석판을 이용해서 비밀번호 "ILOVEYONSEI"를 입력해야 한다.

비밀번호 석판은 총 26가지의 석판이 일렬로 나열되어 있고, 각각 알파벳 대문자가 왼쪽부터 알파벳 순서대로 적혀 있다. 즉, 번째 석판에는 번째 알파벳 대문자가 적혀 있다. 인접한 석판의 거리는 1이다. 따라서 A가 적힌 석판에서 출발해Z가 적힌 석판에 도착하기 위해서는 25의 거리를 이동해야 한다. 원하는 알파벳을 입력하려면 해당 알파벳이 적혀 있는 석판 위에 올라가 점프해야 한다. 점프는 0의 거리를 이동한다.

훈규가 현재 위치한 석판의 알파벳이 주어진다. 훈규는 최소로 이동해 비밀번호를 모두 입력하고자 한다.

 

3. 제약사항

 

4. 입력

입력은 아래와 같이 주어진다.

 

5. 출력

훈규가 비밀번호를 모두 입력하기 위한 이동 거리의 최솟값을 출력한다.

 

6. 풀이

- ILOVEYONSEI에 대한 이동은 84이다. 그래서, 입력 받은 문자열에서 I까지의 위치만 알면 된다.

- 입력받은 알파벳의 아스키코드와 I의 아스키코드의 차를 절대값으로 뽑은 다음에 84를 더해주면 된다.

 

7. 소스 코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.StringTokenizer;

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		
		String s = br.readLine();
		
		int str = s.charAt(0);
		int i = "I".charAt(0);
		
		
		System.out.println((Math.abs(str - i) + 84));
	}

}

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기