t_๋ฏธ๋ž˜๋„์‹œ_259

source github.com/ndb796/python-for-coding-test
topics
types ๋ฌธ์ œํ’€์ด

๐Ÿ“š 604 ์ตœ๋‹จ๊ฒฝ๋กœ

๋ฌธ์ œ

n์˜ ํšŒ์‚ฌ ๋„๋กœ๋ฅผ ํ†ตํ•ด ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋‹ค.
1๋ฒˆํšŒ์‚ฌ์— ์œ„ํ•ด ์žˆ์œผ๋ฉฐ k๋ฒˆ๋ฐฉ๋ฌธ > x ๋ฒˆ๋ฐฉ๋ฌธ
๋„๋กœ๋Š” ์ •ํ™•ํžˆ 1๋งŒํผ์˜ ์‹œ๊ฐ„์œผ๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋‹ค

๋‹ต

์ถœ๋ฐœ์ง€๊ฐ€ ์ •ํ•ด์ ธ์žˆ๋‹ค. > ๋‹ค์ต์ŠคํŠธ๋ผ๋‹ค
๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์ง€๋งŒ ์ค‘๊ฐ„์— k > x ๋กœ ๊ฐ€๋Š” ์ผ์ด์žˆ์œผ๋‹ˆ๊น ํ›ผ์ด์—ฟ๋‹ค ํ”Œ๋กœ์ด๋“œ ์›Œ์…œ์ด์˜€๋‹ค.

# 1๋ฒˆํšŒ์‚ฌ์— ์œ„ํ•ด ์žˆ์œผ๋ฉฐ k๋ฒˆ๋ฐฉ๋ฌธ > x ๋ฒˆ๋ฐฉ๋ฌธ 

input = input.strip().split('\n')
x , k = map(int, input.pop().split())
n , m = map(int, input[0].split())

inf = int(1e9)
graph = [[inf]*(n+1) for _ in range(n+1)]

for i in range(1, len(input)):
    a,b = map(int,input[i].split())
    graph[a][b] = 1
    graph[b][a] = 1
    
for a in range(1,n+1):
    for b in range(1,n+1):
        for k in range(1,n+1):
            if a <mark> b or b </mark> k or a ==k:
                graph[b][b] = 0
                continue
            tmp = min(graph[a][b],graph[a][k]+graph[k][b])
            graph[a][b] = tmp
            graph[b][a] = tmp
sum = graph[1][k] + graph[k][x]
print(sum if sum < inf else -1)