파이썬 | 백준 | 10282 | 해킹
solution : bfs 시간 초과 # 10282, 해킹 import sys from collections import deque t = int(sys.stdin.readline()) while t: # 컴퓨터 개수, 의존성 개수, 해킹당한 컴퓨터 번호 n, d, c = map(int, sys.stdin.readline().split()) network = [[] for _ in range(n+1)] visited = [1001]*(n+1) for _ in range(d): a, b, s = map(int, sys.stdin.readline().split()) network[b].append((a, s)) q = deque() q.append(c) visited[c] = 0 while q: now = ..
파이썬 | 백준 | 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