2021. 3. 26. 11:06ใPython
๋ฐฑ์ค 1927๋ฒ ๋ฌธ์ ๋:
https://www.acmicpc.net/problem/1927
์ ๊ณต์์ ์๋ฃ๊ตฌ์กฐ๋ฅผ ๋ฐฐ์ธ ๋ ํ์ C๋ก ๊ตฌํํด์ ์ฝ๋๋ ๊ธธ๊ณ ... ์ง๋ค๋ณด๋ ์ง์ค๋ ฅ์ด ๋จ์ด์ ธ์ ์ค์๋ฅผ ๋ง์ดํ๋ ๊ธฐ์ต์ด ์๋ค.
๊ทธ๋ฐ ํ์ ํ์ด์ฌ์ผ๋ก ๊ตฌํํ๋ ค๊ณ ์๊ฐํด๋ณด๋ ๋ญ๊ฐ heap์ด๋ผ๋๊ฒ ์กด์ฌํ ๊ฒ ๊ฐ์์ ์ฐพ์๋ณด๋ ์ค์ ๋ก
import heapq
๋ก ํ์ ์ฌ์ฉํ ์ ์๊ฒ ํ์ด์ฌ์ ๋ชจ๋ ๊ฒ ์ค๋น๋์ด ์๋ค๋ ๊ฑธ ์๊ฒ๋์๋ค. ์ผํธ
ํ ํจ์๋ค
1. heapq.heappush
heap = [] #๋น์ด ์๋ ๋ฆฌ์คํธ ์์ฑ
#heapq.heappush(๋ฆฌ์คํธ, ๋ฃ๊ณ ์ถ์ ์ซ์)
heapq.heappush(heap, 0)
heapq.heappush(heap, 1)
print(heap)
=====================================
<์ฝ๋ run>
[0, 1]
์กฐ๊ธ ๋ ํนํ๊ฒ๋ heappush๋ ์์ ๋ด๊ฐ ๋จผ์ ์์ฑํด๋ ๋ฆฌ์คํธ์ ๊ฐ์ ๋ฃ๊ณ , ๊ทธ ๊ฐ์ ๋ฃ์ผ๋ฉด ์์์ ์ต์ ํ์ ๊ธฐ์ค์ ๋ง๊ฒ
์์์๋ถํฐ ๊ฐ์ด ๊ฐ์ฅ ์์ ์์๋ฅผ ์ ๋ ฌํด์ ๋ณด์ฌ์ค๋ค.
2. heap1.heappop
print(heapq.heappop(heap))
===============================
<์ฝ๋ run>
0
heappop์ ์ต์ ํ์ root, ์ฆ ๊ฐ์ฅ ์์ ๊ฐ์ returnํ๋ค. ๊ทธ๋์ ์๋ก์ด ๊ฐ์ ์ ์ฅํด์ printํ๊ฑฐ๋ ๊ทธ๋ฅ printํด๋ ๊ฐ์ ์ป์ ์ ์๊ณ , ๊ทธ ๊ฐ์ ๋ด๊ฐ ๋ง๋ heap์ด๋ผ๋ list์์ ์ฌ๋ผ์ง๋ค.
๋ฌธ์ ํด๊ฒฐ(1927๋ฒ)
์ด์ฐจํผ ๋ฐฑ์ค์๋ ์์ค ๊ณต๊ฐ๋ฅผ ํด๋๋ ํธ์ด๋ผ ๋ถ์กฑํ์ง๋ง.. ์์ค๋ฅผ ๊ณต๊ฐํด๋ณด์๋ฉด,
from sys import stdin
import heapq
def inputZero():
try:
print(heapq.heappop(heap))
except:
print(0)
def inputElse(num):
heapq.heappush(heap,num)
heap = []
N = int(stdin.readline())
for _ in range(0,N):
num = int(stdin.readline())
if num == 0:
inputZero()
else:
inputElse(num)
์ด๋ ๊ฒ ํด๊ฒฐํ๋ค. N์ ์ ๋ ฅ ๋ฐ์ for๋ฌธ์ ๋๋ฆฌ๋ฉฐ ํ ๋ฒ์ฉ ์ ๋ ฅ ๋ฐ๊ณ ๋ฐ๋ก ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ ํ์์ผ๋ก ๊ตฌ์ฑํ๋ค.
(stdin.readline()์ ์ฌ์ฉํ๋ ์ด์ ๋ ๋ฐฑ์ค์์ ์๊ฐ ์ด๊ณผ๊ฐ ์์ฃผ ๋ฐ์ํ๊ธฐ ๋๋ฌธ..)
๋ง์ฝ 0์ ์ ๋ ฅ ๋ฐ์ผ๋ฉด
def inputZero():
try:
print(heapq.heappop(heap))
except:
print(0)
inputZero()๋ผ๋ ํจ์๋ฅผ ๋ถ๋ฌ์ค๋๋ฐ, ์ด๋ try except ๋ฅผ ์ฌ์ฉํ๋ค. ๋ง์ฝ heapop(heap)์์ ์ธ๋ฑ์ค๊ฐ ๋น์ด์์ผ๋ฉด indexError๊ฐ ๋ฐ์ํ๋๋ฐ, ๊ทธ๋ ๋ฐ๋ก except๋ก ๋์ด๊ฐ์ 0์ printํด์ฃผ๋ ์์ด๋ค.
def inputElse(num):
heapq.heappush(heap,num)
๊ทธ๋ฆฌ๊ณ ์ผ๋ฐ์ ์ผ๋ก ์ถ๊ฐํ ์ซ์๋ฅผ ์ ๋ ฅ ๋ฐ์ผ๋ฉด InputElse(num)์ด๋ผ๋ ํจ์๋ก pushํด์ค๋ค.
์ฌ์ค C์ ๋นํ๋ฉด.. ์๋ฃ๊ตฌ์กฐ ์์ฒด๋ฅผ ์๋ฒฝํ ์๊ณ ์์ด์ ์ฝ๋๋ฅผ ์งค ์ ์๋ค๊ธฐ๋ณด๋ค๋ ๊ทธ๋ฅ ๊ฐ๋ ๋ง ์๊ณ ๋ญ Import ํ ์ง ์๊ณ ์๋ค๋ฉด ๊ธ๋ฐฉ ํด๊ฒฐํ ์ ์๋ ๋ฌธ์ ์ฒ๋ผ ๋๊ปด์ง๋ค. ๋ค๋ง ์๊ฐ ๋ณต์ก๋๊ฐ ๋ ์์ฝ๊ณ , C๋ก ์๋ก ์ง๋ฉด์ ์ดํด ํ๋๊ฒ ์ค์ํ ๋ฏ ํ๋ค.
'Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค 1946 ํ์ด์ฌ (0) | 2021.05.04 |
---|---|
๋ฐฑ์ค 1476 ํ์ด์ฌ (0) | 2021.04.07 |
๋ฐฑ์ค 1021๋ฒ ํ์ด์ฌ (0) | 2021.04.02 |
๋ฐฑ์ค 1550๋ฒ ํ์ด์ฌ (0) | 2021.03.27 |
ํ์ด์ฌ ๋ ํ 1์ผ์ฐจ (0) | 2021.02.26 |