문제
![](https://velog.velcdn.com/images%2Fcosmos%2Fpost%2Fefa53b4f-76cc-46ec-a2f1-56bcb26df8c6%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202022-01-28%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%202.02.40.png)
풀이
- 첫 줄에 정수 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))
결과
![](https://velog.velcdn.com/images%2Fcosmos%2Fpost%2F0a4139b9-350d-4fea-bd1f-565233c14c35%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202022-01-28%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%202.01.44.png)
출처 & 깃허브
boj
github