파이썬 | 백준 | 1939 | 중량제한
solution1 : 배열 이용 메모리 초과 (무턱대고 사용하지 말 것..) # 1939, 중량제한 import sys N, M = map(int, sys.stdin.readline().split()) bridges = [[0]*(N+1) for _ in range(N+1)] for _ in range(M): a, b, c = map(int, sys.stdin.readline().split()) bridges[a][b] = max(bridges[a][b], c) bridges[b][a] = max(bridges[b][a], c) in1, in2 = map(int, sys.stdin.readline().split()) print(bridges[in1][in2]) solution2 : 이분탐색 + BFS 1..
파이썬 | 백준 | 1931 | 회의실배정 | 런타임에러
solution 1. 시작 가능한 시간에 시작하는 모든 회의들 중 끝나는 시간이 가장 빠른 것부터 처리 (우선순위큐 이용) (1, 4)회의가 끝난 후 시작 가능한 회의는 (5, 7), (5, 9), (6, 10), (8, 11), (8, 12), (12, 14) 중 (5, 7)이 가장 빨리 끝남 2. (0, 6)은 4시에 회의가 끝나는데 시작이 0시이므로 삭제 (while문 이용해서 계속 pop) while heap and heap[0][1] < tmp[0] : heap에 원소가 없으면 heap[0][1] 접근 불가 heap and 가 먼저 와야 함 heap[0][1] < tmp[0] and heap : 안 됨. 원소가 있는지부터 확인해야 함 (런타임에러) # 1931, 회의실배정 import sys i..
파이썬 | 백준 | 16234 | 인구 이동
solution bfs 이용(Puyo Puyo랑 비슷하게 풀면 됨 li-fo.tistory.com/80) # 16234, 인구 이동 import sys from collections import deque dx = [-1, 1, 0, 0] dy = [0, 0, -1, 1] def bfs(x, y): q = deque() q.append((x, y)) visited[x][y] = 1 tmp = [[x, y]] while q: a, b = q.popleft() for i in range(4): nx = a + dx[i] ny = b + dy[i] if 0
파이썬 | 백준 | 11559 | Puyo Puyo
solution 1. 4개 이상 연결되어있는 경우 찾기 2. 4개 이상 연결된 뿌요의 좌표를 boom 배열에 저장해 한 번에 터트림 3. 4개 이상의 연결된 뿌요가 없을 때까지 1,2 반복 # 11559, Puyo Puyo import sys from collections import deque dx = [-1, 1, 0, 0] dy = [0, 0, -1, 1] def bfs(x, y, ch): visited[x][y] = 1 q = deque() tmp = [] # 좌표 임시 저장하는 배열 q.append((x, y)) tmp.append((x, y)) while q: a, b = q.popleft() for i in range(4): nx = a + dx[i] ny = b + dy[i] if 0