ํฐ์คํ ๋ฆฌ ๋ทฐ
๐จ๐ป ์ฝ๋ฉํ
์คํธ/ํ๋ก๊ทธ๋๋จธ์ค
ํ๋ก๊ทธ๋๋จธ์ค: ๋ฐฐ๋ฌ
dirmathfl 2020. 11. 1. 22:43728x90
๋ฐ์ํ
๋ฌธ์
๋ฌธ์ ํ์ด
๋ฌธ์ ์กฐ๊ฑด์ ๋ฐ๋ผ K ์๊ฐ ์ดํ๋ก ๋ฐฐ๋ฌ ๊ฐ๋ฅํ ๋ง์์์๋ง ์ฃผ๋ฌธ์ ๋ฐ์์ผ ํ๋ค. ์ด๋ ์์ ์ฃผ๋ฌธ์ ๋ฐ์ ์ ์๋ ๋ง์์ ๊ฐ์๋ฅผ ๋ฐํํ์ฌ์ผ ํ๋ค. ๋ชจ๋ ๊ฒฝ์ฐ๋ฅผ `BFS`๋ก ํ์ํ๋ ๊ฒ์ ๋นํจ์จ์ ์ด๋ค. ๋ฐ๋ผ์ `๋ค์ต์คํธ๋ผ`๋ฅผ ์ ์ฉํ์ฌ ํ์์ ํ๊ฒ ๋๋ฉด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค.
์ฝ๋
from math import inf
from collections import deque
def solution(N, road, K):
visited = [False] * (N + 1)
dists = [inf] * (N + 1)
dists[1] = 0
q = deque([1])
while q:
parent = q.popleft()
visited[parent] = True
for node1, node2, dist in road:
if node1 == parent or node2 == parent:
target = node1
if node1 == parent:
target = node2
if dists[target] > dists[parent] + dist:
dists[target] = dists[parent] + dist
q.append(target)
return sum(1 for d in dists if d <= K)
728x90
๋ฐ์ํ
'๐จโ๐ป ์ฝ๋ฉํ ์คํธ > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค: ์ผ๊ทผ ์ง์ (0) | 2020.11.02 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค: ์ซ์ ๊ฒ์ (0) | 2020.11.02 |
ํ๋ก๊ทธ๋๋จธ์ค: N-Queen (0) | 2020.10.29 |
ํ๋ก๊ทธ๋๋จธ์ค: 2 x n ํ์ผ๋ง (0) | 2020.10.29 |
ํ๋ก๊ทธ๋๋จธ์ค: ๊ฑฐ์ค๋ฆ๋ (0) | 2020.10.29 |
๋๊ธ
๊ธ ๋ณด๊ดํจ
์ต๊ทผ์ ์ฌ๋ผ์จ ๊ธ
์ต๊ทผ์ ๋ฌ๋ฆฐ ๋๊ธ