이숭간 공부기록
[백준] 2262번 파이썬 _ 토너먼트 만들기 본문
728x90
https://www.acmicpc.net/problem/2262
문제유형 : 그리디
문제풀이 :
- 랭킹이 가장 낮은사람부터 찾은뒤, 좌우중에 랭킹차가 작은사람과 겨루게 한다.
- 랭킹이 가장 낮은사람부터 찾는이유?? :랭킹이 높은사람부터 찾고 랭킹차가 작은 사람과 겨루게하면 다음 라운드에서 만나게될 사람은 이전사람보다 더 랭킹차가 큰 사람일것이므로 그 차이가 점점더 커지게된다.
- 랭킹이 낮은사람을 찾고 겨루게한뒤에는 해당사람은 무조건 지게되있으므로 pop후에 리스트에서 없애준다.
정답코드 :
import sys
input = sys.stdin.readline
n = int(input())
input_list = list(map(int, input().split()))
sorted_list = sorted(input_list, reverse=True)
result = 0
for i in sorted_list[:-1]:
idx = input_list.index(i)
if idx==0:
result += abs(input_list[idx+1]-i)
elif idx==len(input_list)-1:
result += abs(input_list[idx-1]-i)
else:
result += min(abs(input_list[idx+1]-i),abs(input_list[idx-1]-i))
input_list.pop(idx)
print(result)
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 1715번 파이썬 _ 카드 정렬하기 (0) | 2021.07.25 |
---|---|
[백준] 1339번 파이썬 _ 단어 수학 (0) | 2021.07.25 |
[백준] 1092번 파이썬 _ 배 (0) | 2021.07.22 |
[백준] 11000번 파이썬 _ 강의실 배정 (0) | 2021.07.22 |
[백준] 21608번 파이썬 _ 상어 초등학교 (삼성SW) (0) | 2021.07.19 |