흙금이네 블로그

[BOJ] 14729 - 칠무해 (Python) 본문

알고리즘

[BOJ] 14729 - 칠무해 (Python)

흙금 2023. 1. 23. 19:45

 

 

아이디어

 

리스트를 정렬해 성적이 낮은 학생 7명을 뽑는다.

 

 

풀이

 

성적을 저장할 리스트 scores에 초기값으로 100을 할당한다.

입력 받는 성적이 현재 scores에서 가장 높은 성적보다 작으면 더 작은 성적으로 대체하고 scores를 오름차순 정렬한다.

마지막에 하위 7명의 성적을 소수점 아래 세 자리까지 출력한다.

 

import sys

input = sys.stdin.readline

N = int(input())
scores = [100]*7
for i in range(N):
    score = float(input())
    if score < scores[6]:
        scores[6] = score
        scores.sort()
for i in range(7):
    print(f'{scores[i]:.3f}')

 

 

힙을 사용하여 풀면 더 빠를 줄 알았는데 오히려 더 느렸다.

# 더 느린 코드
import sys, heapq

input = sys.stdin.readline

N = int(input())
scores = []
for i in range(N):
    heapq.heappush(scores, -float(input()))
    if i >= 7:
        heapq.heappop(scores)
res = []
for _ in range(7):
    score = -heapq.heappop(scores)
    res.append(score)
for i in range(6, -1, -1):
    print(f'{res[i]:.3f}')

 

Comments