문제
풀이
- 첫 줄에 정수 a와 b가 주어진다.
- 다음 줄엔 정수 n이 주어진다.
- 다음 n개의 줄엔 미리 지정되어 있는 주파수가 주어진다.
- 주파수 이동 명령은 아래와 같다.
-> 주파수를 1 증가시킨다.
-> 주파수를 1 감소시킨다.
-> 미리 지정되있는 주파수로 이동한다.
- 주파수 a에서 b로 갈 때 눌러야 하는 버튼수의 최솟값을 출력하라.
코드
import sys
input = sys.stdin.readline
def solve(start, end, l):
if end in l:
return 1
near_l = []
result = 0
for x in l:
near_l.append(abs(end - x))
near_num = min(near_l)
if abs(end-start) <= near_num:
near_num = abs(end-start)
else:
result += 1
while near_num != 0:
near_num -= 1
result += 1
return result
if __name__ == '__main__':
a, b = map(int, input().split())
n = int(input())
frequency = [int(input()) for _ in range(n)]
print(solve(a, b, frequency))
결과
출처 & 깃허브
boj
github