Algorithm Problem/Python

[python] λ°±μ€€ - 14235. 크리슀마슀 μ„ λ¬Ό

deo2kim 2020. 11. 10. 08:06
λ°˜μ‘ν˜•

πŸ€”λ¬Έμ œ ν•΄κ²°

  • S2 | μš°μ„ μˆœμœ„ 큐

μš°μ„ μˆœμœ„ 큐 문제, 파이썬의 νž™ν λͺ¨λ“ˆμ„ μ‚¬μš©ν•˜μž.

νž™ν λͺ¨λ“ˆμ€ μ΅œμ†Œκ°’μ„ λ°˜ν™˜ν•˜λŠ” μ΅œμ†Œνž™μ„ 기본으둜 ν•œλ‹€.

λ”°λΌμ„œ 음수둜 값을 λ„£κ³  값을 λ½‘μ•„μ„œ λ‹€μ‹œ 음수λ₯Ό κ³±ν•΄μ£Όλ©΄ μ΅œλŒ€κ°’μ΄ λœλ‹€.

 

  1. 인풋값이 0일 λ•Œ
    1. 가지고 μžˆλŠ” 선물이 있으면 선물을 λ‚˜λˆ μ€€λ‹€.
    2. μ—†μœΌλ©΄ 꽝
  2. 인풋값이 0이 아닐 λ•Œ
    1. 선물을 μΆ©μ „ν•œλ‹€.

 

 

 

πŸ’»μ†ŒμŠ€ μ½”λ“œ

import heapq

if __name__ == '__main__':
    N = int(input())
    pq = []  # 선물을 담을 리슀트 ( μš°μ„ μˆœμœ„ 큐 )
    for _ in range(N):
        input_value = input()
        if input_value == '0':  # 인풋값이 0일 λ•Œ
            if pq:  # 선물이 있으면 μ„ λ¬Ό
                print(-heapq.heappop(pq))
            else:  # 선물이 μ—†μœΌλ©΄ -1
                print(-1)

        else:
            # κ±°μ μ—μ„œ μ„ λ¬Ό μΆ©μ „
            present_list = list(map(int, input_value.split()))
            for i in range(1, present_list[0] + 1):
                heapq.heappush(pq, -present_list[i])
 

 

πŸ“•λ¬Έμ œ 확인

좜처: BACKJOON ONLINE JUDGE

링크: https://www.acmicpc.net/problem/14235

 

14235번: 크리슀마슀 μ„ λ¬Ό

ν¬λ¦¬μŠ€λ§ˆμŠ€μ—λŠ” 산타가 μ°©ν•œ μ•„μ΄λ“€μ—κ²Œ 선물을 λ‚˜λˆ μ€€λ‹€. μ˜¬ν•΄λ„ μ‚°νƒ€λŠ” 선물을 λ‚˜λˆ μ£ΌκΈ° μœ„ν•΄ λ§Žμ€ λ…Έλ ₯을 ν•˜κ³  μžˆλŠ”λ°, 전세계λ₯Ό λŒμ•„λŒ•κΈ°λ©° μ°©ν•œ μ•„μ΄λ“€μ—κ²Œ 선물을 λ‚˜λˆ μ€„ 것이닀. ν•˜μ§€λ§Œ

www.acmicpc.net

 

 

λ°˜μ‘ν˜•