ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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]๋กœ ๋ณธ๋ž˜ ๊ฐ’๋งŒ ์ถœ๋ ฅํ•ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

     

     

     

    ๋Œ“๊ธ€

Designed by Tistory.