일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 내일배움캠프 최종 프로젝트
- 한글 공부 사이트
- JavaScript
- useState
- 리액트 훅
- useEffect
- 코딩테스트
- 타입스크립트 리액트
- 내일배움캠프
- 파이썬 for in
- 파이썬 enumerate
- typeScript
- 리액트 프로젝트
- 자바스크립트
- 파이썬 replace
- 파이썬 slice
- 프로그래머스
- Next 팀 프로젝트
- 파이썬 딕셔너리
- 내일배움캠프 프로젝트
- 리액트
- 파이썬 반복문
- 파이썬 for
- REACT
- 리액트 공식 문서
- 내배캠 프로젝트
- tanstack query
- 리액트 공식문서
- 타입스크립트
- React Hooks
- Today
- Total
sohyeon kim
[Python] 백준 : 크리스마스 선물 14235, 우선순위 큐, heapq 본문
📝 문제
크리스마스에는 산타가 착한 아이들에게 선물을 나눠준다. 올해도 산타는 선물을 나눠주기 위해 많은 노력을 하고 있는데, 전세계를 돌아댕기며 착한 아이들에게 선물을 나눠줄 것이다. 하지만 산타의 썰매는 그렇게 크지 않기 때문에, 세계 곳곳에 거점들을 세워 그 곳을 방문하며 선물을 충전해 나갈 것이다. 또한, 착한 아이들을 만날 때마다 자신이 들고있는 가장 가치가 큰 선물 하나를 선물해 줄 것이다.
이제 산타가 선물을 나눠줄 것이다. 차례대로 방문한 아이들과 거점지의 정보들이 주어졌을 때, 아이들이 준 선물들의 가치들을 출력하시오. 만약 아이들에게 줄 선물이 없다면 -1을 출력하시오.
🫠 나의 풀이
import sys
sys.stdin = open('input.txt', 'r')
# input = sys.stdin.readline
n = int(input())
queue = []
for _ in range(n):
place = input().strip()
if place == '0':
if queue:
present = max(queue)
print(present)
queue.remove(present)
else:
print(-1)
else:
lst = list(map(int, place.split()))
lst.pop(0)
queue += lst
🧞♂️ 다른 사람의 풀이
import sys
import heapq
sys.stdin = open('input.txt', 'r')
# input = sys.stdin.readline
n = int(input())
queue = []
for _ in range(n):
place = list(map(int, input().split()))
if place[0] == 0:
if queue:
present = -heapq.heappop(queue)
print(present)
else:
print(-1)
else:
for i in range(place[0]):
heapq.heappush(queue, -place[i + 1])
우선순위 큐
- 숫자가 낮은 값부터 저장된다.
- 저장과 출력 시에 - 를 붙여 큰 숫자가 가장 앞에 오고, 가장 먼저 꺼낼 수 있도록 할 수 있다.
🔗 https://velog.io/@mein-figur/Python%EC%9A%B0%EC%84%A0%EC%88%9C%EC%9C%84-%ED%81%90-heapq
[Python]우선순위 큐, heapq
큐나 스택과 비슷한 자료형이지만, 각 원소들은 우선순위를 가지고 있다. 우선순위 큐에서, 높은 우선순위를 가진 원소는 낮은 우선순위를 가진 원소보다 먼저 처리된다. 같은 우선순위를 가진
velog.io
🔗 https://hongcoding.tistory.com/91
[백준] 14235 크리스마스 선물 (Python 파이썬)
문제 설명 https://www.acmicpc.net/problem/14235 14235번: 크리스마스 선물 크리스마스에는 산타가 착한 아이들에게 선물을 나눠준다. 올해도 산타는 선물을 나눠주기 위해 많은 노력을 하고 있는데, 전세
hongcoding.tistory.com
🔗 https://jie0025.tistory.com/470
[우선순위큐][실버3] 14235번 크리스마스 선물 - 파이썬(python)
https://www.acmicpc.net/problem/14235 14235번: 크리스마스 선물 크리스마스에는 산타가 착한 아이들에게 선물을 나눠준다. 올해도 산타는 선물을 나눠주기 위해 많은 노력을 하고 있는데, 전세계를 돌아
jie0025.tistory.com
🔗 https://www.acmicpc.net/problem/14235
'Coding Test' 카테고리의 다른 글
[Python] 백준 : 괄호 끼워넣기 11899, 스택, stack (0) | 2025.01.28 |
---|---|
[Python] 백준 : 생태계 4358, 개수를 모르는 input, 소수점 4자리, EOFError 시간 초과, % (1) | 2025.01.03 |
[Python] 백준 : 후보 추천하기 1713, dictionary, pop(), min() (0) | 2025.01.02 |
[Python] 코드잇 : 리스트 항목 합 탐색, Brute Force (0) | 2024.12.18 |
[Python] 백준 : 질문은 계속돼 32194, 누적합, prefix (0) | 2024.12.17 |