728x90
14698. 전생했더니 슬라임 연구자였던 건에 대하여(Hard)
import sys
import heapq
T = int(sys.stdin.readline())
for i in range(T):
N = int(sys.stdin.readline())
lst = list(map(int, sys.stdin.readline().split()))
lst.sort()
mult = 1
if len(lst) > 1:
while True:
a = heapq.heappop(lst)
if lst:
a *= heapq.heappop(lst)
heapq.heappush(lst, a)
mult *= a
else:
break
print(mult % 1000000007)
힙을 좀 더 응용한 형태의 문제. 코드를 최대한 간결하게 하는 것에 중점을 두고 짜봤다. 원래 리스트를 가만히 두고 힙에다가 곱을 하나씩 집어넣는 방법으로 하려고 했는데 굳이 그럴 필요 없이 리스트 하나만 두고 push pop을 반복하기만 해도 됐다.
728x90
'알고리즘 > 백준' 카테고리의 다른 글
[백준]230210-12 문제풀이 (0) | 2023.02.12 |
---|---|
[백준]230209 문제풀이 (0) | 2023.02.09 |
[백준]230207 문제풀이 (0) | 2023.02.07 |
[백준]230206 문제풀이 (0) | 2023.02.06 |
[백준]230204-05 문제풀이 (0) | 2023.02.05 |
댓글