파이썬 | 백준 | 1202 | 보석 도둑
solution 1. 힙 이용. 1) 가치 - 최대힙을 이용하여 pop하고 무게가 배낭의 수용 가능한 무게보다 작으면 결과에 더한다. 2) 배낭의 무게 - 최소힙을 이용하여 수용 가능한 무게가 작은 것부터 담을 수 있는 최대 무게를 구한다. →시간초과 # 1202, 보석 도둑 import sys import heapq N, K = map(int, sys.stdin.readline().split()) jewels = [] bags = [] for _ in range(N): M, V = map(int, sys.stdin.readline().split()) # 무게, 가격 heapq.heappush(jewels, ((-V, V), M)) for _ in range(K): heapq.heappush(bags, ..
파이썬 | 백준 | 1173 | 운동
solution 시키는 대로 하면 된다.. # 1173, 운동 import sys N, m, M, T, R = map(int, sys.stdin.readline().split()) sec, sec_exercise = 0, 0 # 총 필요한 시간, 운동한 시간 now = m if now > M or now + T > M: # 운동을 할 수 없으면 print(-1) sys.exit() while sec_exercise < N: if now + T M: now -= R if now < m: # X-R이 m보다 작으면 맥박은 m이다. now = m sec += 1 print(sec) 문제 출처 www.acmicpc.net/problem/1173 1173번: 운동 첫째 줄에 다섯 정수 N, m, M, T, R이 ..
파이썬 | 백준 | 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 = ..