-
[Python] ๋ฐฑ์ค 11286 ์ ๋๊ฐ ํ (Heapq)๐ป Algorithm/Python 2022. 7. 8. 19:19
๐ ๋ฌธ์
์ ๋๊ฐ ํ์ ๋ค์๊ณผ ๊ฐ์ ์ฐ์ฐ์ ์ง์ํ๋ ์๋ฃ๊ตฌ์กฐ์ด๋ค.
๋ฐฐ์ด์ ์ ์ x (x ≠ 0)๋ฅผ ๋ฃ๋๋ค.
๋ฐฐ์ด์์ ์ ๋๊ฐ์ด ๊ฐ์ฅ ์์ ๊ฐ์ ์ถ๋ ฅํ๊ณ , ๊ทธ ๊ฐ์ ๋ฐฐ์ด์์ ์ ๊ฑฐํ๋ค. ์ ๋๊ฐ์ด ๊ฐ์ฅ ์์ ๊ฐ์ด ์ฌ๋ฌ๊ฐ์ผ ๋๋, ๊ฐ์ฅ ์์ ์๋ฅผ ์ถ๋ ฅํ๊ณ , ๊ทธ ๊ฐ์ ๋ฐฐ์ด์์ ์ ๊ฑฐํ๋ค.
ํ๋ก๊ทธ๋จ์ ์ฒ์์ ๋น์ด์๋ ๋ฐฐ์ด์์ ์์ํ๊ฒ ๋๋ค.์ ๋ ฅ
์ฒซ์งธ ์ค์ ์ฐ์ฐ์ ๊ฐ์ N(1≤N≤100,000)์ด ์ฃผ์ด์ง๋ค. ๋ค์ N๊ฐ์ ์ค์๋ ์ฐ์ฐ์ ๋ํ ์ ๋ณด๋ฅผ ๋ํ๋ด๋ ์ ์ x๊ฐ ์ฃผ์ด์ง๋ค. ๋ง์ฝ x๊ฐ 0์ด ์๋๋ผ๋ฉด ๋ฐฐ์ด์ x๋ผ๋ ๊ฐ์ ๋ฃ๋(์ถ๊ฐํ๋) ์ฐ์ฐ์ด๊ณ , x๊ฐ 0์ด๋ผ๋ฉด ๋ฐฐ์ด์์ ์ ๋๊ฐ์ด ๊ฐ์ฅ ์์ ๊ฐ์ ์ถ๋ ฅํ๊ณ ๊ทธ ๊ฐ์ ๋ฐฐ์ด์์ ์ ๊ฑฐํ๋ ๊ฒฝ์ฐ์ด๋ค. ์ ๋ ฅ๋๋ ์ ์๋ -231๋ณด๋ค ํฌ๊ณ , 231๋ณด๋ค ์๋ค.
์ถ๋ ฅ
์ ๋ ฅ์์ 0์ด ์ฃผ์ด์ง ํ์๋งํผ ๋ต์ ์ถ๋ ฅํ๋ค. ๋ง์ฝ ๋ฐฐ์ด์ด ๋น์ด ์๋ ๊ฒฝ์ฐ์ธ๋ฐ ์ ๋๊ฐ์ด ๊ฐ์ฅ ์์ ๊ฐ์ ์ถ๋ ฅํ๋ผ๊ณ ํ ๊ฒฝ์ฐ์๋ 0์ ์ถ๋ ฅํ๋ฉด ๋๋ค.
์์ ์ ๋ ฅ 1
18
1
-1
0
0
0
1
1
-1
-1
2
-2
0
0
0
0
0
0
0์์ ์ถ๋ ฅ 1
-1
1
0
-1
-1
1
1
-2
2
0
๐ ํ์ด
๐ฌ Code
import sys, heapq input = sys.stdin.readline h = [] for i in range(int(input())): x = int(input()) if x != 0: heapq.heappush(h, (abs(x), x)) else: if not h: print(0) else: print(heapq.heappop(h)[1])
๐ก Solution
heapq์ ํํ์ ์ฝ์ ํ๋ฉด ํํ ์ฒซ๋ฒ์งธ ์์๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ๋ฉ๋๋ค. ์ด ๋ฌธ์ ๋ ์ ๋๊ฐ์ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌ์ ํด์ค์ผ ํ๋ฏ๋ก ํํ์ ์ด์ฉํ์ต๋๋ค. (abs(x), x)๋ก ์ ๋๊ฐ๊ณผ ๋ณธ๋ ๊ฐ์ ๋ฌถ์ด์ heapq์ ๋ฃ์ด์ฃผ๊ณ , popํ ๋๋ heapq.heappop(h)[1]๋ก ๋ณธ๋ ๊ฐ๋ง ์ถ๋ ฅํด์ฃผ๋ฉด ๋ฉ๋๋ค.
'๐ป Algorithm > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python] ๋ฐฑ์ค 16953 A โ B (Greedy/BFS) (0) 2022.07.08 [Python] ๋ฐฑ์ค 15787 ๊ธฐ์ฐจ๊ฐ ์ด๋ ์ ํค์น๊ณ ์ํ์๋ฅผ (๊ตฌํ) (0) 2022.07.08 [Python] ๋ฐฑ์ค 3184 ์ (BFS) (0) 2022.07.02 [Python] ๋ฐฑ์ค 2667 ๋จ์ง๋ฒํธ๋ถ์ด๊ธฐ (BFS) (0) 2022.07.02 [Python] ๋ฐฑ์ค 2615 ์ค๋ชฉ (Brute Force) (0) 2022.07.02