728x90
반응형
문제 링크
https://www.acmicpc.net/problem/3135
풀이
a,b = map(int, input().split())
n = int(input())
favorites = []
for _ in range(n):
favorites.append(int(input()))
how_many1 = []
how_many2 = []
how_many1.append(abs(a-b))
for i in range(len(favorites)):
how_many2.append(abs(favorites[i] - b))
if min(how_many1) <= min(how_many2):
print(min(how_many1))
else: print(min(how_many2)+1)
how_many1 변수는 단순히 +1 혹은 -1 버튼만을 눌러 원하는 주파수로 갔을 때의 누른 횟수입니다.
a와 b의 차를 abs() 함수로 절댓값 처리를 해주었습니다.
how_many2 변수는 즐겨찾기 버튼을 이용해 원하는 주파수로 갔을 때의 누른 횟수입니다.
리스트를 순회하며 각 즐겨찾기 버튼을 눌렀을 때의 횟수를 저장했습니다.
if문을 사용해 가장 최적의 횟수를 출력했습니다.
다만, 즐겨찾기 버튼을 사용할 경우에는 즐겨찾기 버튼을 누른 1회를 추가했습니다.
728x90
반응형
'알고리즘 정복하기! > 백준 문제풀이' 카테고리의 다른 글
백준 16435번 Python / Greedy (0) | 2022.02.25 |
---|---|
백준 1343번 Python / Greedy (0) | 2022.02.21 |
백준 2407번 Python / Math (0) | 2022.02.18 |
백준 1246 Python / Greedy (0) | 2022.02.17 |
백준 1629번 Python / Math (0) | 2022.02.17 |
댓글