개발자 톡

연습문제 톡 지우는 소수를 좋아해

런타임에러 원인 문의

등록일
2024-02-24 23:33:06
조회수
286
작성자
hhs511
import sys
import math
n, m = map(int, input().split())
graph = [[]*(n+5) for _ in range(n+5)]
for _ in range(m) :
    a,b,c = map(int, input().split())
    graph[a].append([b,c])
    graph[b].append([a,c])
#print(graph)

left, right = 2, 10000000000

def dfs(u) :
    global mid, flag
    check[u] = 1
    #print(u, end = ' ')
    if u == n : #마지막 장소 도착
        flag = 1
        return
    for v, c in graph[u] :
        if check[v] or mid <= c: continue
        dfs(v)
while left <= right :
    mid = (left+right)//2
    #print(mid)
    check = [0] * (n+5)
    flag = 0
    dfs(1)
    if flag : #해당 케이스는 가능하다.
        right = mid -1
        ok = mid
    else :
        left = mid + 1


for i in range(ok, 10000000000) :
    flag = 1
    for j in range(2, int(math.sqrt(i))+1) :
        if i%j == 0 :
            flag = 0
            break
    if flag :
        print(i)
        break


테스트 케이스 3개에 대해서만 런타임 에러가 뜨는데... 원인을 못찾겠네요. 도움 부탁드립니다.

#지우는_소수를_좋아해
#런타임에러
#이진탐색

이 카테고리의 톡 더보기