๐งฉ Algorithm/์ฐ์ ์์ ํ6 [๋ฐฑ์ค] 1927๋ฒ: ์ต์ ํ Hint 1. ํ ์๋ฃ๊ตฌ์กฐ ์ด์ฉํ๊ธฐ (ํ์ด๋?) 2. ํ์์ heappop()์ ํ๋ฉด ๊ฐ์ฅ ์์ ๊ฐ์ด ๋ฐํ ๋จ ๋ฐฑ์ค 1927๋ฒ: ์ต์ ํ import heapq import sys n = int(sys.stdin.readline()) heap = [] # ํ ๋ง๋ค๊ธฐ(๋ฆฌ์คํธ๋ ๋ง๋๋ ๋ฒ์ ๋๊ฐ์) for i in range(n): num = int(sys.stdin.readline()) if num == 0: # input ์ซ์๊ฐ 0 ์ด๋ฉด ํ์ฌ ํ์ ๋ค์ด์๋ ์ต์๊ฐ ์ถ๋ ฅํ๊ธฐ print(heapq.heappop(heap) if heap != [] else 0) # ํ์ด ๋น์ด์์ง ์์ ๋๋ง heappop() ํ๊ธฐ else: heapq.heappush(heap, num) # ํ์ ์ซ์ ๋ฃ๊ธฐ 2023. 2. 28. [๋ฐฑ์ค] 11279๋ฒ: ์ต๋ ํ Hint 1. ํ ์๋ฃ๊ตฌ์กฐ ์ด์ฉํ๊ธฐ (ํ์ด๋?) 2. ํ์์ heappop()์ ํ๋ฉด ๊ฐ์ฅ ์์ ๊ฐ์ด ๋ฐํ ๋จ. ๊ทธ๋ ๋ค๋ฉด ๊ฐ์ฅ ํฐ ๊ฐ์ ๋ฐํํ๋ ค๋ฉด..? 3. ํ์ ๋ฃ์ ์ซ์๋ค์ ๋ง์ด๋์ค ํด์ ๋ฃ๋๋ค๋ฉด heappop() ํ์ ๋ ์ด๋ค ์ซ์๊ฐ ๋จผ์ ๋ฝํ๊น? ๋ฐฑ์ค 11279๋ฒ: ์ต๋ ํ import heapq import sys n = int(sys.stdin.readline()) heap = [] # ํ ๋ง๋ค๊ธฐ(๋ฆฌ์คํธ๋ ๋ง๋๋ ๋ฒ์ ๋๊ฐ์) for i in range(n): num = int(sys.stdin.readline()) if num == 0: # input ์ซ์๊ฐ 0 ์ด๋ฉด ํ์ฌ ํ์ ๋ค์ด์๋ ์ต๋๋๊ฐ ์ถ๋ ฅํ๊ธฐ print((heapq.heappop(heap))*(-1) if heap != [] el.. 2023. 2. 26. [๋ฐฑ์ค] 2075๋ฒ: N๋ฒ์งธ ํฐ ์ Hint 1. ์ฐ์ ์์ ํ - ํ(heap) ์๋ฃ๊ตฌ์กฐ ์ด์ฉํ๊ธฐ (๊ทธ๊ฒ ๋ญ์ง?) 2. ํ์์ heappop()์ ์ด์ฉํ๋ฉด ์์ ์ ๋ถํฐ ์ถ๋ ฅ๋๋ค! ๋ฐฑ์ค 2075๋ฒ: N๋ฒ์งธ ํฐ ์ (ํ์ด๋ณด๊ธฐ) import heapq N = int(input()) heap = []# ์๋ก์ด ํ ๋ง๋ค๊ธฐ for i in range(N): for num in map(int, input().split()): heapq.heappush(heap, num)# ํ์ ์ซ์ ์ฝ์ ํ๊ธฐ if len(heap) > N:# ํ์ ์์์ ๊ฐ์๊ฐ N๊ฐ๋ฅผ ๋์ด๊ฐ๋ฉด heapq.heappop(heap)# ํ์์ ๊ฐ์ฅ ์์ ์ ์ ๊ฑฐํ๊ธฐ print(heapq.heappop(heap))# N๋ฒ์งธ๋ก ํฐ ์ ์ถ๋ ฅํ๊ธฐ 2023. 2. 24. [๋ฐฑ์ค] 11286๋ฒ: ์ ๋๊ฐ ํ Hint 1. ํ ์๋ฃ๊ตฌ์กฐ์ ํํ์ ๋ฃ์ ์ ์๋ค 2. ํ ์์ ํํ์ ๋ค์ด์๋ ์์๋๋ก ์์๊ฑฐ๋ถํฐ ํฐ๊ฑฐ๊น์ง ์ ๋ ฌ๋๋ค 3. ํ ์์ฉ๋ฐฉ๋ฒ ์์๋ณด๊ธฐ (์ฌ๊ธฐ) ๋ฐฑ์ค 11286๋ฒ (ํ์ด๋ณด๊ธฐ) import heapq import sys heap = [] for i in range(int(sys.stdin.readline())): n = int(sys.stdin.readline()) if n == 0: if heap == []: print(0) else: print(heapq.heappop(heap)[1])# ๊ฐ์ฅ ์์ ์ ๋๊ฐ์ ๊ฐ์ง ์ซ์ n ์ถ๋ ฅํ๊ธฐ else: heapq.heappush(heap, (abs(n), n))# ํํ ํํ๋ก n์ ์ ๋๊ฐ๊ณผ n์ ๋ ๋ค ๋ฃ์ด์ค 2023. 2. 21. ํ(Heap) ์์ฉ๋ฐฉ๋ฒ Goal 1. ํ์ ์์ฉ ๋ฐฉ๋ฒ ์์๋ณด๊ธฐ ํจ์ heappop() ์ด์ฉํ๊ธฐ ์ค์ํ ์ ์ heapq.heappop(heap)์ ํญ์ heap์์ ๊ฐ์ฅ ์์ ๊ฐ์ ๋ฐํํ๋ค๋ ๊ฒ์ด๋ค. ์์ ์ โก๏ธ ํฐ ์ ์๋์ ๊ฐ์ด 1์์ 5๊น์ง์ ์ซ์๊ฐ ์์ ๋ heap์ ์ด์ฉํ๋ฉด ๊ฐ์ฅ ์์ ์๋ถํฐ ์์๋๋ก ๋ฝ๋ ๊ฒ์ ๊ฐ๋จํ๋ค. import heapq arr = [1, 2, 3, 4, 5] heap = [] for num in arr: heapq.heappush(heap, num) for i in range(len(heap)): print(heapq.heappop(heap))# ์ถ๋ ฅ: 1 2 3 4 5 ํฐ ์ โก๏ธ ์์ ์ ๊ฑฐ๊พธ๋ก ํ์ ์ด์ฉํด์ ํฐ ์๋ถํฐ ์์๋๋ก ๋ฝ๋ ๊ฒ๋ ๊ฐ๋ฅํ๋ค. import heapq arr = [1,.. 2023. 2. 10. ์ฐ์ ์์ ํ Goal 1. ์ฐ์ ์์ ํ ์ดํดํ๊ธฐ 2. ํ(Heap) ์๋ฃ๊ตฌ์กฐ ์ดํดํ๊ธฐ ์ฐ์ ์์ ํ๋? ๋์ ์ฐ์ ์์๋ฅผ ๊ฐ์ง ์์๊ฐ ๋ฎ์ ์ฐ์ ์์๋ฅผ ๊ฐ์ง ์์๋ณด๋ค ๋จผ์ ์ฒ๋ฆฌ๋๋ค ํ์ด์ฌ์์ ํ(heap)์ด๋ผ๋ ์๋ฃ ๊ตฌ์กฐ๋ก ๊ตฌํ์ด ๊ฐ๋ฅํ๋ค ํ(heap)์ด๋? ์์ ์ด์ง ํธ๋ฆฌ(Complete Binary Tree)๋ก ๋ฃจํธ ๋ ธ๋์ ์๋ ๊ฐ์ ํธ๋ฆฌ์์ ์ต๋๊ฐ (Max Heap) ํน์ ์ต์๊ฐ (Min Heap)์ด๋ค ๋ถ๋ชจ ๋ ธ๋์ ๊ฐ์ด ์์ ๋ ธ๋์ ๊ฐ๋ณด๋ค ํญ์ ํฌ๊ฑฐ๋ (Max Heap) ํญ์ ์๋ค (Min Heap) 2023. 2. 9. ์ด์ 1 ๋ค์