λ°μν
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 | 31 |
Tags
- Code Splitting
- λΈλμΉ μ΄λ¦ λ³κ²½ λͺ λ Ήμ΄
- git branch -m
- react immer
- Javascript
- styled-compoents
- javascript λΉλκΈ°
- vscode extension
- reading 'useDebugValue'
- react-native-snap-carousel
- μ΅λ¨κ±°λ¦¬μκ³ λ¦¬μ¦
- carouselButton
- Call Stack
- js fetch
- fetch()
- ν μ€ν¬ ν
- styled-components μ€μΉ μ€λ₯
- styled-components extension
- java
- likelion
- React 곡μλ¬Έμ
- react
- styled components μ€μΉ μλ¨
- styled-components λ²μ λ¬Έμ
- λ¨μΌλ§ν¬λ리μ€νΈ
- λ€νΈμν¬ ν΅μ μμ²
- use-immer
- Styled Components
- reading 'edgesOut'
- 1966 νλ¦°ν°ν
Archives
- Today
- Total
Keep Going
[μ΅λ¨κ±°λ¦¬] νλ‘μ΄λ μμ¬ μκ³ λ¦¬μ¦ λ³Έλ¬Έ
λ°μν
νλ‘μ΄λ μμ¬ νΉμ§
- μ©λ: λͺ¨λ μμ μ΅λ¨ κ²½λ‘λ₯Ό μ°Ύλ μκ³ λ¦¬μ¦
- κ·Έλν μ ν: μμ κ°μ€μΉλ₯Ό νμ©νμ§λ§, μμ μ¬μ΄ν΄μ΄ μλ κ·Έλν
- μ₯μ : ꡬνμ΄ κ°λ¨νκ³ , λͺ¨λ μμ μ΅λ¨ κ²½λ‘λ₯Ό ꡬν μ μμ
- DPλ₯Ό μ¬μ©ν΄μ ꡬννλ€.
- λ¨μ : μκ° λ³΅μ‘λκ° λμ ν° κ·Έλνμμλ λΉν¨μ¨μ
μκ³ λ¦¬μ¦
μκ° λ³΅μ‘λ O(V^3)
- dpλ₯Ό μ¬μ©ν΄μ κ·Έλνμ λͺ¨λ μ μ μ μ¬μ΄μ μ΅λ¨ κ²½λ‘λ₯Ό ꡬνλ€. 3μ€ λ£¨νλ₯Ό ν΅ν΄μ λͺ¨λ κ°λ₯ν κ²½λ‘λ₯Ό κ²μ¬νκ³ , μ΅λ¨ κ²½λ‘λ₯Ό μ λ°μ΄νΈ νλ λ°©μμΌλ‘ μλνλ€.
- dpλ₯Ό μ¬μ©νλ€κ΅¬μ ?
- νλ‘μ΄λ μμ¬μ “κ±°μ³κ°λ μ μ ”μ μ΄μ©ν΄μ μ΅λ¨ κ²½λ‘λ₯Ό μ μ§μ μΌλ‘ κ°μ νλ λ°©λ²μ΄λ€.
- iμμ jλ‘ κ°λ μ΅λ¨ κ±°λ¦¬κ° μ μ kλ₯Ό κ±°μ³κ°λ κ²½μ° λ μ§§μμ§ μ μλ€λ©΄, κ·Έ κ°μΌλ‘ μ΅λ¨ 거리λ₯Ό κ°±μ νλ λ°©μμ΄λ€.
1. μ΅λ¨κ±°λ¦¬ λ°°μ΄ μ΄κΈ°ν - νλ‘μ΄λ μμ¬μ μ¬μ©νκΈ° μν μΈν
- 2μ°¨μ λ°°μ΄μ μ¬μ©ν΄μ μ΅λ¨κ±°λ¦¬ λ°°μ΄ distλ₯Ό λ§λ λ€.
- dist[i][j] λ iμμ jλ‘ κ°λ μ΅λ¨ 거리λ₯Ό μλ―Ένλ€.
- distλ₯Ό int(1e9)μΌλ‘ μ΄κΈ°ν ν κ²μΈλ°,
- μκΈ° μμ μΌλ‘ κ°λ 거리λ 0μΌλ‘ μ΄κΈ°ν
- μ§μ μ°κ²°λ κ°μ μ ν΄λΉ κ°μ€μΉλ‘ μ΄κΈ°ν
for i in range(n):
for j in range(n):
if i == j:
dist[i][j] = 0
else:
dist[i][j] = graph[i][j] if (i, j) in graph else float('inf')
2. μ μ§μ κ°μ - νλ‘μ΄λ μμ¬μ κ½
- iλΆν° jκΉμ§ κ°λλ° λͺ¨λ κ°λ₯ν kλ₯Ό λ€λ¦¬λ κ²½μ°λ₯Ό κ³ λ €νλ €κ³ νλ€ !!! μ μ kλ₯Ό κ±°μ³κ°λ κ²½λ‘κ° κΈ°μ‘΄μ κ²½λ‘λ³΄λ€ λ μ§§μμ§ νμΈνκ³ , μ§§μΌλ©΄ κ°±μ νλ λ°©μμ΄λ€. (=κ²½λ‘ i -> jλ₯Ό κ²½λ‘ i -> k -> jμ λΉκ΅νμ¬ λ μ§§μ κ²½λ‘λ₯Ό μ°ΎμΌλ©΄ κ°±μ )
- : νλ‘μ΄λ μμ¬μ ν΅μ¬μ iμμ jκΉμ§ κ°λλ° kλ₯Ό λ€λ¦¬λ©΄ λ μ΅λ¨ κ±°λ¦¬κ° λ°μν μ μλ€λ κ²μ΄λκΉ !!
- 3κ°μ μ€μ²© forλ¬Έμ μ¬μ©ν΄μ λͺ¨λ μ (i, j)μ λν΄ λͺ¨λ μ€κ° μ μ kλ₯Ό κ³ λ €νλ€.
dist[i][j]
λdist[i][k] + dist[k][j]
λ³΄λ€ ν¬λ©΄,dist[i][j]
λ₯Ό κ°±μ νλ€.
for k in range(n):
for i in range(n):
for j in range(n):
if dist[i][j] > dist[i][k] + dist[k][j]:
dist[i][j] = dist[i][k] + dist[k][j]
3. μμ μ¬μ΄ν΄ κ°μ§
- νλ‘μ΄λ μμ¬μ μμ κ°μ€μΉμΌ λ μ¬μ© κ°λ₯νμ§λ§, μμ μ¬μ΄ν΄μ΄ μμΌλ©΄ μλλ€. λ°λΌμ μμ μ¬μ΄ν΄μ κ°μ§νλ κ²μ΄ νμνλ€ !
- dist[i][i]λ iμμ μμν΄μ iλ‘ λμμ€λ μ΅λ¨ κ²½λ‘λ₯Ό μλ―Ένλ€. μ΄κΈ°ν ν λ dist[i][i]=0μΌλ‘ μ€μ λλ€. κ·Έλ°λ° νλ‘μ΄λ μμ¬μ λ€ λ νμ μ΄κ²μ΄ μμλΌλ©΄, μμ μ¬μ΄ν΄μ΄ μ‘΄μ¬νλ€κ³ νλ¨νλ€.
- μλνλ©΄ iμμ μΆλ°ν΄μ iλ‘ λμμ€λ κ²½λ‘μ μ΄ κ°μ€μΉκ° μμμ΄λΌλ λ»μ΄κΈ° λλ¬Έμ΄λ€. 2κ°μ§ κ²½μ°κ° μ‘΄μ¬ν μ μλ€.
- μ§μ μ μΈ μμ μ¬μ΄ν΄: λ
Έλ
i
μμ μμνμ¬ λ€μ λ Έλi
λ‘ λμμ€λ κ²½λ‘μ μμ μ¬μ΄ν΄μ΄ μ‘΄μ¬νλ κ²½μ°. - κ°μ μ μΈ μμ μ¬μ΄ν΄: μ¬λ¬ μ μ μ κ±°μ³ λ€μ λ
Έλ
i
λ‘ λμμ€λ κ²½λ‘μ μμ μ¬μ΄ν΄μ΄ ν¬ν¨λ κ²½μ°.
- μ§μ μ μΈ μμ μ¬μ΄ν΄: λ
Έλ
- μλνλ©΄ iμμ μΆλ°ν΄μ iλ‘ λμμ€λ κ²½λ‘μ μ΄ κ°μ€μΉκ° μμμ΄λΌλ λ»μ΄κΈ° λλ¬Έμ΄λ€. 2κ°μ§ κ²½μ°κ° μ‘΄μ¬ν μ μλ€.
# μμ μ¬μ΄ν΄ κ°μ§
for i in range(n):
if dist[i][i] < 0:
print("Graph contains a negative weight cycle")
return None
ꡬν
def floyd_warshall(n, graph):
# 거리 ν
μ΄λΈ μ΄κΈ°ν
dist = [[int(1e9)] * n for _ in range(n)]
for i in range(n):
dist[i][i] = 0
for u in range(n):
for v, w in graph[u]:
dist[u][v] = w
# νλ‘μ΄λ μμ¬ μκ³ λ¦¬μ¦
for k in range(n):
for i in range(n):
for j in range(n):
if dist[i][j] > dist[i][k] + dist[k][j]:
dist[i][j] = dist[i][k] + dist[k][j]
# μμ μ¬μ΄ν΄ κ°μ§
for i in range(n):
if dist[i][i] < 0:
print("Graph contains a negative weight cycle")
return None
return dist
# μμ κ·Έλν
n = 4
graph = [
[(1, 1), (2, 4)],
[(2, -3)],
[(3, 2)],
[(0, -1)]
]
distances = floyd_warshall(n, graph)
if distances:
for row in distances:
print(row)
λ°μν
'Problem Solving' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[μκ³ λ¦¬μ¦] ν¬ ν¬μΈν° (0) | 2024.07.15 |
---|---|
λ°±μ€ 1744λ². μ λ¬ΆκΈ° (0) | 2024.07.01 |
[μ΅λ¨κ±°λ¦¬] λ²¨λ§ ν¬λ (3) | 2024.06.10 |
[νλ‘κ·Έλλ¨Έμ€] μ μ μΌκ°ν (0) | 2024.05.27 |
[BOJ] 2626 λ°μ΄λ¬μ€ (0) | 2024.05.13 |