https://www.acmicpc.net/problem/1939
1939번: 중량제한
첫째 줄에 N, M(1 ≤ M ≤ 100,000)이 주어진다. 다음 M개의 줄에는 다리에 대한 정보를 나타내는 세 정수 A, B(1 ≤ A, B ≤ N), C(1 ≤ C ≤ 1,000,000,000)가 주어진다. 이는 A번 섬과 B번 섬 사이에 중량제한이
www.acmicpc.net
내 풀이
import sys
from collections import deque
input = sys.stdin.readline
def solution():
n,m = map(int,input().split())
graph = [[] for _ in range(n+1)]
for _ in range(m):
a,b,c = map(int,input().split())
graph[a].append((b,c))
graph[b].append((a,c))
start,end = map(int,input().split())
def bfs(k):
q = deque([start])
visit=[0]* (n+1)
visit[start]=True
while q:
x = q.popleft()
for i,j in graph[x]:
if not visit[i] and j>=k:
visit[i]=1
q.append(i)
return True if visit[end] else False
def binary():
answer=0
left,right =0,int(1e9)
while left<=right:
mid = (left+right)//2
if bfs(mid):
answer = mid
left = mid +1
else:
right = mid -1
print(answer)
binary()
solution()
개인적으로 좋은문제라고 생각했다!
bfs와 이진탐색의 결합이였는데 문제자체가 풀고나니 어렵지는 않았는데(전형적인 허세) 풀이과정을 생각해내기가 쉽지않아
구글링 좀 해보았다
다른사람의 풀이
https://velog.io/@ckstn0778/백준-1939번-중량제한-1-Python
백준 1939번 - 중량제한(★★★ / ▲▲ / 2) : Python
풀이 시간 : 30~40분시간 제한 : 1초메모리 제한 : 128 MB기출 : backjoon링크 : https://www.acmicpc.net/problem/1939N(2≤N≤10,000)개의 섬으로 이루어진 나라가 있다. 이들 중 몇 개의 섬 사이에는 다리
velog.io
'취준 > 백준' 카테고리의 다른 글
2504 - 파이썬 (0) | 2022.11.17 |
---|---|
10816(숫자카드 2) - 파이썬 (0) | 2022.10.27 |
1806(부분합) - 파이썬 (0) | 2022.10.24 |
1238 - 파이썬 (0) | 2022.10.24 |
25755 - 파이썬 (0) | 2022.10.21 |