Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,12 @@

d = [10001] * (m + 1)
# 1로 만들기 + 거스름돈 문제 같은데
# d를 10001개로 설정하는게 맞나? -> 1원이 있을 때? -> 화폐 단위별 개수를 저장하는 거라서 1001개가 맞지 않을까
# d를 10001개로 설정하는게 맞나? -> 1원이 있을 때? -> 화폐 단위별 개수를 저장하는 거라서 101개가 맞지 않을까
# d[1] = m일 듯.
# 점화식은?
# di = min(d[i - 1], d[m//i])
# 단단히 틀림.
# 왜 i - k 인가...
d[0] = 0
for i in range(n):
for j in range(money[i], m + 1):
Expand Down
Empty file.
28 changes: 28 additions & 0 deletions 이코테/09 최단 경로/전보/유진.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
INF = int(1e9)
n, m = map(int, input().split())

graph = [[INF] * (n + 1) for _ in range(n + 1)]

# 자기 자신 0
for a in range(1, n + 1):
for b in range(1, n + 1):
if a == b:
graph[a][b] = 0

for i in range(m):
a, b = map(int, input().split())
graph[a][b] = 1
graph[b][a] = 1 # 안썼었음

x, k = map(int, input().split())

for i in range(1, m + 1):
for a in range(1, m + 1):
for b in range(1, m + 1):
graph[a][b] = min(graph[a][b], graph[a][i] + graph[i][b])

distance = graph[1][k] + graph[k][x]
if distance == INF:
print(-1)
else:
print(distance)
35 changes: 35 additions & 0 deletions 이코테/09 최단 경로/플로이드 워셜.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
INF = int(1e9)

# 노드개수, 간선의 개수
n = int(input())
m = int(input())

# 2차원 리스트
graph = [[INF] * (n + 1) for _ in range(n + 1)]

# 자기 자신 0으로 초기화
for a in range(1, n + 1):
for b in range(1, n + 1):
if a == b:
graph[a][b] == 0

# 각 간선에 대한 정보 입력받기
for _ in range(m):
# a에서 b까지 c
a, b, c = map(int, input().split())
graph[a][b] = c

# 플로이드 워셜 알고리즘
for k in range(1, n + 1):
for a in range(1, n + 1):
for b in range(1, n + 1):
graph[a][b] = min(graph[a][b], graph[a][k] + graph[k][b])

# 출력
for a in range(1, n + 1):
for b in range(1, n + 1):
if graph[a][b] == INF:
print("INFINITY", end=" ")
else:
print(graph[a][b], end=" ")
print()