[BOJ] 3135 라디오 문제 바로가기
준하는 라디오 수집광으로 신제품의 라디오가 나올때마다 흥분을 금치 못한다고 한다.
최근 준하가 구입한 라디오는 매우 하이테크 한데, 그 라디오에는 다음과 같은 버튼이 있다.
준하는 몸이 안좋아 하루에 손가락을 몇 번 움직이지 못하기 때문에 우리의 도움이 필요하다.
현재 주파수 A와 듣고싶은 주파수 B가 주어질 때,
주파수 A에서 B로 갈 때 눌러야 하는 가장 적은 버튼수를 구해주자.
첫 줄엔 정수 A와 B가 주어진다 (1 ≤ A, B < 1000, A ≠ B).
다음 줄엔 정수 N이 주어진다 (1 ≤ N ≤ 5).
다음 N개의 줄엔 미리 지정되어 있는 주파수가 주어진다 (주파수는 1000 보다 작다).
주파수 A에서 B로 갈 때 눌러야 하는 버튼수의 최솟값을 출력한다.
✍ 코드
from sys import stdin
A, B = map(int, stdin.readline().split())
N = int(stdin.readline())
F = []
for _ in range(N):
F.append(int(stdin.readline()))
# 현재 주파수 - 듣고싶은 주파수의 절대값
result = abs(A - B)
# 즐겨찾기 주파수로 이동하는지 안하는지 여부
TF = False
for f in F:
# 듣고싶은 주파수 - 즐겨찾기 주파수의 절대 값이 result보다 작다면
if result > abs(B - f):
result = abs(B - f) # result = 듣고싶은 주파수 - 즐겨찾기 주파수의 절대 값
TF = True # 즐겨찾기 주파수 사용시 True
if TF: # 즐겨찾기 주파수를 사용했다면
print(result+1)
else: # 즐겨찾기 주파수를 사용하지 않았다면
print(result)