파이썬 heap 사용법: 파이썬 최소힙, 최대힙
[MinHeap] 기본적으로 heap을 만들면 minheap (작은 것에서 큰 것으로 높아지는 방향)이다. h=[] heapq.heappush(h,(1)) heapq.heappush(h,(3)) heapq.heappush(h,(2)) heapq.heappush(h,(7)) heapq.heappush(h,(10)) heapq.heappush(h,(12)) while h: cur = heapq.heappop(h) print(cur) 답: 1 2 3 7 10 12 [MaxHeap] 음수를 넣고 뽑아서 다시 -1을 곱해준다 h=[] heapq.heappush(h,(-1)) heapq.heappush(h,(-3)) heapq.heappush(h,(-2)) heapq.heappush(h,(-7)) heapq.hea..
2021. 7. 6.
[테스트케이스 추가] 백준 1238번: 파티 (python, 파이썬)
1. 문제 https://www.acmicpc.net/problem/1238 1238번: 파티 첫째 줄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 10,000), X가 공백으로 구분되어 입력된다. 두 번째 줄부터 M+1번째 줄까지 i번째 도로의 시작점, 끝점, 그리고 이 도로를 지나는데 필요한 소요시간 Ti가 들어 www.acmicpc.net 2. 풀이 다익스트라. 단방향이기 때문에 갈 때와 올때의 길이 다르고 두 값을 더한 것의 최대값을 구해야한다. 3. 구현 import sys import heapq import math # sys.stdin=open("input.txt") N, X, T = map(int, sys.stdin.readline().split()) def dijk(start, e..
2021. 7. 5.
[테스트케이스 추가] 백준 4485번 녹색 옷 입은 애가 젤다지? (python, 파이썬)
1. 문제 https://www.acmicpc.net/problem/4485 4485번: 녹색 옷 입은 애가 젤다지? 젤다의 전설 게임에서 화폐의 단위는 루피(rupee)다. 그런데 간혹 '도둑루피'라 불리는 검정색 루피도 존재하는데, 이걸 획득하면 오히려 소지한 루피가 감소하게 된다! 젤다의 전설 시리즈의 주 www.acmicpc.net 2. 풀이 주어진 지도가 graph라고 생각하고 dist도 같은 모양으로 만들어서 상하좌우를 순회한다. 3. 구현 import sys import heapq import math sys.stdin=open('input.txt') dr = [0,1,0,-1] dc = [1,0,-1,0] def valid(r,c,len): return r>=0 and c>=0 and r
2021. 7. 5.
[테스트 케이스 추가] 백준 1504 특정한 최단 경로 python,파이썬
1. 문제 https://www.acmicpc.net/problem/1504 1504번: 특정한 최단 경로 첫째 줄에 정점의 개수 N과 간선의 개수 E가 주어진다. (2 ≤ N ≤ 800, 0 ≤ E ≤ 200,000) 둘째 줄부터 E개의 줄에 걸쳐서 세 개의 정수 a, b, c가 주어지는데, a번 정점에서 b번 정점까지 양방향 길이 존 www.acmicpc.net 2. 풀이 다익스트라로 풀면 되고, 1->v1->v2->n, 1->v2->v1->n 그리고 연결이 안될 경우 INF인 경우를 세줘야 한다. 3. 구현 import sys import heapq import math sys.stdin=open("input.txt") v,e = map(int, sys.stdin.readline().split())..
2021. 7. 5.