๋ฌธ์
๋ฐฑ์ค 1927 ์ต์ ํ https://www.acmicpc.net/problem/1927
๋ฐฑ์ค 11279 ์ต๋ ํ https://www.acmicpc.net/problem/11279
์ต์ ํ ์ฒ์ ์ฝ๋ (์๊ฐ์ด๊ณผ)
๋ฐฐ์ด์์ min()์ ์ด์ฉํ์ฌ ์ต์๊ฐ์ ์ฐพ์๋ค.
n = int(input())
x = []
for _ in range(n):
num = int(input())
if num == 0:
if x:
print(min(x))
x.remove(min(x))
else:
print(0)
else:
x.append(num)
์ต์ ํ ์ฝ๋
import sys
import heapq
n = int(input())
heap = []
for _ in range(n):
num = int(sys.stdin.readline())
if num != 0:
heapq.heappush(heap, num)
else:
try:
print(heapq.heappop(heap))
except:
print(0)
์ต์ ํ ํ์ด
n = int(input())
heap = []
์
๋ ฅ๋ฐ์ ์ซ์์ ๊ฐ์์ธ n์ ์
๋ ฅ๋ฐ๊ณ
ํ ์๋ฃ๊ตฌ์กฐ๊ฐ ๋ ๋ฐฐ์ด์ ํ๋ ๋ง๋ ๋ค.
for _ in range(n):
num = int(sys.stdin.readline())
n๋ฒ๋งํผ num ์ซ์๋ฅผ ์
๋ ฅ ๋ฐ๋๋ค.
num์ ์ต๋ 10๋ง๋ฒ ๊น์ง ์
๋ ฅ๋ ์ ์๊ธฐ ๋๋ฌธ์ input()๋ณด๋ค ๋น ๋ฅธ sys.stdin.readline()์ผ๋ก ์
๋ ฅ๋ฐ๋๋ค.
if num != 0:
heapq.heappush(heap, num)
else:
try:
print(heapq.heappop(heap))
except:
print(0)
๋ง์ฝ num์ด ์์ฐ์๋ผ๋ฉด
ํ์ ์์ฐ์ num์ ์ถ๊ฐํ๋ค.
num์ด 0 ์ด๋ผ๋ฉด
ํ์์ ์ ์ผ ์์ ์ซ์๋ฅผ ๊บผ๋ด์ ์ถ๋ ฅํ๊ณ ๊ทธ ์ซ์๋ฅผ ํ์์ ์ญ์ ํ๋ค.
ํ์ ์ซ์๊ฐ ์๊ณ ๋น์ด์๋ ์ํ๋ผ๋ฉด 0์ ์ถ๋ ฅํ๋ค.
์
๋ ฅ ์กฐ๊ฑด์ ์์๋ ์
๋ ฅ๋์ง ์๋๋ค ํ์์ผ๋ ์์์ผ ๊ฒฝ์ฐ๋ฅผ ๊ณ ๋ คํ ์ฝ๋๋ ์ ์ง ์์๋ค.
์ต๋ ํ ์ฝ๋
import sys
import heapq
n = int(input())
heap = []
for _ in range(n):
num = int(sys.stdin.readline())
if num != 0:
heapq.heappush(heap, -num)
else:
try:
print(-heapq.heappop(heap))
except:
print(0)
์ต๋ ํ ํ์ด
heapq ๋ชจ๋์์๋ ์ต๋ ํ์ ์ ๊ณตํ์ง ์๊ธฐ ๋๋ฌธ์ ๋ถํธ๋ฅผ ๋ณ๊ฒฝํ์ฌ ์ต๋ํ์ ์ง์ ๊ตฌํํด์ผํ๋ค.
if num != 0:
heapq.heappush(heap, -num)
else:
try:
print(-heapq.heappop(heap))
except:
print(0)
๋ถํธ๋ฅผ ๋ฐ๊ฟ์ ์ต์ ํ์ ๋ฃ์ด์ฃผ๊ณ
๊บผ๋ผ๋๋ ๋ถํธ๋ฅผ ๋ฐ๊ฟ์ ๊บผ๋ด๋ฉด
์ต๋ ํ๊ณผ ๋์ผํ ๊ธฐ๋ฅ์ ํ๋ค.
์๋กญ๊ฒ ๋ฐฐ์ด์ / ๋๋์
- ํํ ๋ชจ๋์์ ์ต๋ํ์ ์ ๊ณตํ์ง ์๋๋ค๋ ์ ์ ์๊ฒ ๋์๋ค.
- ๊ทธ๋์ ์ต๋ํ์ ์ง์ ๊ตฌํํด์ผ ํ๋๋ฐ ๋ถํธ๋ง ๋ฐ๊พธ๋ฉด ๊ฐ๋จํ๊ฒ ์ต๋ํ๋ ๊ตฌํ ํ ์ ์๋ค๋๊ฑธ ์๊ฒ ๋์๋ค.
- ํ์ ์ฌ๋ฌ ๊ฐ ์ค์์ ์ต๋๊ฐ ๋๋ ์ต์๊ฐ์ ๋น ๋ฅด๊ฒ ์ฐพ์ ์ ์๋ค๋๊ฑธ ์๊ฒ ๋์๋ค.
- ๋ฐฐ์ด์ ์ต๋ / ์ต์๊ฐ์ ์ฐพ์๋ ์๊ฐ ๋ณต์ก๋๊ฐ O(N) ์ด์ง๋ง
- ํ์ ์ต๋ / ์ต์๊ฐ์ ์ฐพ์๋ ์๊ฐ ๋ณต์ก๋๊ฐ O(logN) ์ด๋ค.
'์ฝ๋ฉํ ์คํธ๐ก' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ์์์ฐพ๊ธฐ (0) | 2024.08.06 |
---|---|
[๋ฐฑ์ค] 1135. ๋ด์ค ์ ํ๊ธฐ (0) | 2024.08.03 |
[๋ฐฑ์ค] 14888. ์ฐ์ฐ์ ๋ผ์๋ฃ๊ธฐ (2) | 2024.07.14 |
[๋ฐฑ์ค] 1012. ์ ๊ธฐ๋ ์๋ฐฐ์ถ (2) | 2024.07.14 |
[๋ฆฟ์ฝ๋] Reduce Array Size To The Half (0) | 2024.06.27 |