파이썬 백준 5800번
실버 5
https://www.acmicpc.net/problem/5800
문제 보기
분류: 구현, 정렬
문제 풀기
두번째 줄부터 학생수와 점수를 같이 입력을 받기 때문에 deque() 를 이용하여 제일 왼쪽 학생수를 제거한다.
deque() 를 정렬하기 위해 list() 함수를 이용하여 변환하고 sort(reverse = True) 를 이용하여 내림차순 정렬을 한다.
내림차순 정렬으로 Max 와 Min 의 값은 찾아 졌고 인접한 점수의 가장 큰 gap 을 구하기 위해 for loop 을 돌려 인접한 두 value 의 차이를 절대값으로 찾아 Largese gap 으로 저장한다.
코드 보기
import sys
inputdata = sys.stdin.readline
from collections import deque
def fnGradeStatistics(class_x):
class_dq.popleft()
class_ls = list(class_dq)
class_ls.sort(reverse = True)
# print(class_ls) # test print
largestgap = 0
for i in range(len(class_ls) - 1):
gap = abs(class_ls[i] - class_ls[i + 1])
if largestgap < gap:
largestgap = gap
# print(largestgap) # test print
print(f'Class {class_x}')
print(f'Max {class_ls[0]}, Min {class_ls[-1]}, Largest gap {largestgap}')
if __name__ == "__main__":
k = int(inputdata().strip())
class_x = 0
for _ in range(k):
class_x += 1
class_dq = deque(map(int, inputdata().split()))
# print(class_dq) # test print
fnGradeStatistics(class_x)
'공부하기 > 백준' 카테고리의 다른 글
[Python] 백준 풀기 5635 - 생일 (0) | 2022.12.27 |
---|---|
[Python] 백준 풀기 1475 - 방 번호 (0) | 2022.12.26 |
[Python] 백준 풀기 1316 - 그룹 단어 체커 (0) | 2022.12.24 |
[Python] 백준 풀기 2720 - 세탁소 사장 동혁 (0) | 2022.12.23 |
[Python] 백준 풀기 14719 - 빗물 (0) | 2022.12.22 |