๋ฐ์ํ
Notice
Recent Posts
Recent Comments
Link
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- ๋ธ๋ผ์ฐ์ ์คํ
- 2BPerfect
- DFS
- ํ๋ก๊ทธ๋๋จธ์ค
- ์ด๊ฒ์ด ์ทจ์ ์ ์ํ ์ฝ๋ฉํ ์คํธ๋ค
- ์ด์ง์ ๋ณํ
- ๋ฐ์ค๊ทธ๋ํ
- ์ง ๊ฐ ์์ธก ๋ถ์
- ์ ํ ํฌ ํ์ด์ฌ
- mysql
- Do_it
- dacon
- Extended Slices
- ํ์ ๋ณ์
- sql
- ์๋ฐ
- BFS
- jdbc
- MacOS
- matplotlib
- ํฉํ ๋ฆฌ์ผ ์ง๋ฒ
- ๋ฐฑ์ค
- ์์ด
- np.zeros_like
- Do it
- ์ฐธ์กฐ ๋ณ์
- PYTHON
- ์ต์
- java
- ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ
Archives
- Today
- Total
๐ฆ ๊ณต๋ฃก์ด ๋์!
์ต๋จ๊ฒฝ๋ก ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ ์ถ๊ฐ์ ๋ฆฌ ๋ณธ๋ฌธ
Development/CodingTest
์ต๋จ๊ฒฝ๋ก ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ ์ถ๊ฐ์ ๋ฆฌ
Kirok Kim 2022. 2. 14. 23:56๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ
- ํน์ ๋ ธ๋์์ ๋ค๋ฅธ ๋ ธ๋๊น์ง์ ์ต๋จ ๊ฒฝ๋ก
- ๋ค์ต์คํธ๋ผ ์ต๋จ ๊ฒฝ๋ก ์๊ณ ๋ฆฌ์ฆ์ ์์ ๊ฐ์ ์ด ์์ ๋ ์ ์์ ์ผ๋ก ๋์
- ํ์ค ์ธ๊ณ์ ๋๋ก(๊ฐ์ )์ ์์ ๊ฐ์ ์ผ๋ก ํํ๋์ง ์์
- ๋ค์ต์คํธ๋ผ ์ต๋จ ๊ฒฝ๋ก ์๊ณ ๋ฆฌ์ฆ์ ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๋ถ๋ฅ(DP๋ก๋ ๋ถ๋ฅ๊ฐ ๋๊ธฐ๋ ํจ)
- ๋งค ์ํฉ์์ ๊ฐ์ฅ ๋น์ฉ์ด ์ ์ ๋ ธ๋๋ฅผ ์ ํํด ์์์ ๊ณผ์ ์ ๋ฐ๋ณต
์ ์ฒด์ ์ธ ํ๋ฆ
- ์ถ๋ฐ ๋ ธ๋ ์ค์
- ์ถ๋ฐ ๋ ธ๋๋ฅผ ๊ธฐ์ค์ผ๋ก ๊ฐ ๋ ธ๋์ ์ต์ ๋น์ฉ ์ ์ฅ
- ๋ฐฉ๋ฌธํ์ง ์์ ๋ ธ๋ ์ค์์ ๊ฐ์ฅ ๋น์ฉ์ด ์ ์ ๋ ธ๋๋ฅผ ์ ํ
- ํด๋น ๋ ธ๋๋ฅผ ๊ฑฐ์ณ์ ํน์ ํ ๋ ธ๋๋ก ๊ฐ๋ ๊ฒฝ์ฐ๋ฅผ ๊ณ ๋ คํ์ฌ ์ต์ ๋น์ฉ์ ๊ฐฑ์
- ์ ๊ณผ์ 3~4๋ฅผ ๋ฐ๋ณต
- ์๊ณ ๋ฆฌ์ฆ ๋์ ๊ณผ์ ์์ ์ต๋จ ๊ฑฐ๋ฆฌ ํ ์ด๋ธ์ ๊ฐ ๋ ธ๋์ ๋ํ ํ์ฌ๊น์ง์ ์ต๋จ ๊ฑฐ๋ฆฌ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์์
- ์ฒ๋ฆฌ ๊ณผ์ ์์ ๋ ์งง์ ๊ฒฝ๋ก๋ฅผ ์ฐพ์ผ๋ฉด ‘์ด์ ๋ถํฐ๋ ์ด ๊ฒฝ๋ก๊ฐ ์ ์ผ ์งง์ ๊ฒฝ๋ก์ผ'๋ผ๊ณ ๊ฐฑ์ ํจ
- ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ : ๋งค ์ํฉ์์ ๋ฐฉ๋ฌธํ์ง ์์ ๊ฐ์ฅ ๋น์ฉ์ด ์ ์ ๋
ธ๋๋ฅผ ์ ํํด ์์์ ๊ณผ์ ์ ๋ฐ๋ณตํจ
- ๋จ๊ณ๋ฅผ ๊ฑฐ์น๋ฉฐ ํ ๋ฒ ์ฒ๋ฆฌ๋ ๋ ธ๋์ ์ต๋จ ๊ฑฐ๋ฆฌ๋ ๊ณ ์ ๋์ด ๋ ์ด์ ๋ฐ๋์ง ์์
- ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ์ ์ํํ ๋ค์ ํ
์ด๋ธ์ ๊ฐ ๋
ธ๋๊น์ง์ ์ต๋จ ๊ฑฐ๋ฆฌ ์ ๋ณด๊ฐ ์ ์ฅ๋จ
- ์๋ฒฝํ ํํ์ ์ต๋จ ๊ฒฝ๋ก๋ฅผ ๊ตฌํ๋ ค๋ฉด ์์ค์ฝ๋์ ์ถ๊ฐ์ ์ธ ๊ธฐ๋ฅ์ ๋ ๋ฃ์ด์ผํจ
- ๊ฐ๋จํ ๊ตฌํ ๋ฐฉ๋ฒ
- ๋จ๊ณ๋ง๋ค ๋ฐฉ๋ฌธํ์ง ์์ ๋ ธ๋ ์ค์์ ์ต๋จ ๊ฑฐ๋ฆฌ๊ฐ ๊ฐ์ฅ ์งง์ ๋ ธ๋๋ฅผ ์ ํํ๊ธฐ ์ํด ๋งค ๋จ๊ณ๋ง๋ค 1์ฐจ์ ํ ์ด๋ธ์ ๋ชจ๋ ์์๋ฅผ ํ์ธ(์์ฐจ ํ์)ํ๋ค.
๋ ธ๋ ๋ฒํธ 1 2 3 4 5 ๊ฒฝ๋ก ๊ฐ 0 ๋ฌดํ ๋ฌดํ ๋ฌดํ ๋ฌดํ -
import sys input=sys.stdin.readline INF=int(1e9) # ๋ฌดํ์ ์๋ฏธํ๋ ๊ฐ์ผ๋ก 10์ต์ ์ค์ # ๋ ธ๋์ ๊ฐ์, ๊ฐ์ ์ ๊ฐ์๋ฅผ ์ ๋ ฅ๋ฐ๊ธฐ n,m=map(int,input().split()) # ์์ ๋ ธ๋ ๋ฒํธ๋ฅผ ์ ๋ ฅ๋ฐ๊ธฐ start=int(input()) # ๊ฐ ๋ ธ๋์ ์ฐ๊ฒฐ๋์ด ์๋ ๋ ธ๋์ ๋ํ ์ ๋ณด๋ฅผ ๋ด๋ ๋ฆฌ์คํธ๋ฅผ ๋ง๋ค๊ธฐ graph=[[] for i in range(n+1)] # ๋ฐฉ๋ฌธํ ์ ์ด ์๋์ง ์ฒดํฌํ๋ ๋ชฉ์ ์ ๋ฆฌ์คํธ ๋ง๋ค๊ธฐ visited=[False] *(n+1) # ์ต๋จ ๊ฑฐ๋ฆฌ ํ ์ด๋ธ์ ๋ชจ๋ ๋ฌดํ์ผ๋ก ์ ์ธ dis=[INF]*(n+1) # ๋ชจ๋ ๊ฐ์ ์ ๋ณด๋ฅผ ์ ๋ ฅ๋ฐ๊ธฐ for _ in range(m): a,b,c=map(int,input().split()) # a๋ฒ ๋ ธ๋์์ b๋ฒ ๋ ธ๋๋ก ๊ฐ๋ ๋น์ฉ์ด c๋ผ๋ ์๋ฏธ graph[a].append((b,c)) # ๋ฐฉ๋ฌธํ์ง ์์ ๋ ธ๋ ์ค์์, ๊ฐ์ฅ ์ต๋จ ๊ฑฐ๋ฆฌ๊ฐ ์งง์ ๋ ธ๋์ ๋ฒํธ๋ฅผ ๋ฐํ def get_smallest_node(): min_value=INF index=0 # ๊ฐ์ฅ ์ต๋จ ๊ฑฐ๋ฆฌ๊ฐ ์งง์ ๋ ธ๋(์ธ๋ฑ์ค) for i in range(1,n+1): if distance[i] < min_value and not visited[i]: min_value = distance[i] index = i return index def dijkstart(start): # ์์ ๋ ธ๋์ ๋ํด์ ์ด๊ธฐํ distance[start] = 0 visited[start] = True for j in graph[start]: dis[j[0]] = j[1] # ์์ ๋ ธ๋๋ฅผ ์ ์ธํ ์ ์ฒด n-1 ๊ฐ์ ๋ ธ๋์ ๋ํด ๋ฐ๋ณต for i in range(n-1): # ํ์ฌ ์ต๋จ ๊ฑฐ๋ฆฌ๊ฐ ๊ฐ์ฅ ์งง์ ๋ ธ๋๋ฅผ ๊บผ๋ด์, ๋ฐฉ๋ฌธ ์ฒ๋ฆฌ now = get_smallest_node() visited[now] = True # ํ์ฌ ๋ ธ๋์ ์ฐ๊ฒฐ๋ ๋ค๋ฅธ ๋ ธ๋๋ฅผ ํ์ธ for j in graph[now]: cost=dis[now] +j[1] # ํ์ฌ ๋ ธ๋๋ฅผ ๊ฑฐ์ณ์ ๋ค๋ฅธ ๋ ธ๋๋ก ์ด๋ํ๋ ๊ฑฐ๋ฆฌ๊ฐ ๋ ์งง์ ๊ฒฝ์ฐ if cost < dis[j[0]]: dis[j[0]]=cost # ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ์ ์ํ dijkstra(start) # ๋ชจ๋ ๋ ธ๋๋ก ๊ฐ๊ธฐ ์ํ ์ต๋จ ๊ฑฐ๋ฆฌ๋ฅผ ์ถ๋ ฅ for i in range(1,n+1): # ๋๋ฌํ ์ ์๋ ๊ฒฝ์ฐ, ๋ฌดํ(INF)๋ผ๊ณ ์ถ๋ ฅ if distance[i] ==INF: print('INFINITY') # ๋๋ฌํ ์ ์๋ ๊ฒฝ์ฐ ๊ฑฐ๋ฆฌ๋ฅผ ์ถ๋ ฅ else: print(dis[i])
๋ฐ์ํ
'Development > CodingTest' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ต๋จ๊ฒฝ๋ก ํ์ ์ด์ฉํ ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ ์ถ๊ฐ์ ๋ฆฌ ...2 (0) | 2022.02.17 |
---|---|
์ต๋จ๊ฒฝ๋ก ํ์ ์ด์ฉํ ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ ์ถ๊ฐ ์ ๋ฆฌ...1 (0) | 2022.02.15 |
์ต๋จ๊ฒฝ๋ก (0) | 2022.02.09 |
[ํ๋ก๊ทธ๋๋จธ์ค] Python N์ผ๋ก ํํ (0) | 2022.02.01 |
[ํ๋ก๊ทธ๋๋จธ์ค]Python ์ ์ ์ผ๊ฐํ (0) | 2022.01.31 |
Comments