Skip to content

Commit 0cf0412

Browse files
committed
2 parents d954e0e + 38ea112 commit 0cf0412

13 files changed

Lines changed: 72 additions & 63 deletions

File tree

17/1.py

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,38 @@
1-
INF = int(1e9) # 무한을 의미하는 값으로 10억을 설정합니다.
1+
INF = int(1e9) # 무한을 의미하는 값으로 10억을 설정
22

3-
# 노드의 개수 및 간선의 개수를 입력 받습니다.
3+
# 노드의 개수 및 간선의 개수를 입력받기
44
n = int(input())
55
m = int(input())
6-
# 2차원 리스트(그래프 표현)를 만들고, 모든 값을 무한으로 초기화합니다.
6+
# 2차원 리스트(그래프 표현)를 만들고, 모든 값을 무한으로 초기화
77
graph = [[INF] * (n + 1) for _ in range(n + 1)]
88

9-
# 자기 자신에서 자기 자신으로 가는 비용은 0으로 초기화합니다.
9+
# 자기 자신에서 자기 자신으로 가는 비용은 0으로 초기화
1010
for a in range(1, n + 1):
1111
for b in range(1, n + 1):
1212
if a == b:
1313
graph[a][b] = 0
1414

15-
# 각 간선에 대한 정보를 입력 받아, 그 값으로 초기화합니다.
15+
# 각 간선에 대한 정보를 입력받아, 그 값으로 초기화
1616
for _ in range(m):
17-
# A에서 B로 가는 비용은 C라고 설정합니다.
17+
# A에서 B로 가는 비용은 C라고 설정
1818
a, b, c = map(int, input().split())
19-
# 가장 짧은 간선 정보만 저장합니다.
19+
# 가장 짧은 간선 정보만 저장
2020
if c < graph[a][b]:
2121
graph[a][b] = c
2222

23-
# 점화식에 따라 플로이드 워셜 알고리즘을 수행합니다.
23+
# 점화식에 따라 플로이드 워셜 알고리즘을 수행
2424
for k in range(1, n + 1):
2525
for a in range(1, n + 1):
2626
for b in range(1, n + 1):
2727
graph[a][b] = min(graph[a][b], graph[a][k] + graph[k][b])
2828

29-
# 수행된 결과를 출력합니다.
29+
# 수행된 결과를 출력
3030
for a in range(1, n + 1):
3131
for b in range(1, n + 1):
32-
# 도달할 수 없는 경우, 0을 출력합니다.
32+
# 도달할 수 없는 경우, 0을 출력
3333
if graph[a][b] == INF:
3434
print(0, end=" ")
35-
# 도달할 수 있는 경우 거리를 출력합니다.
35+
# 도달할 수 있는 경우 거리를 출력
3636
else:
3737
print(graph[a][b], end=" ")
3838
print()

17/2.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,30 @@
1-
INF = int(1e9) # 무한을 의미하는 값으로 10억을 설정합니다.
1+
INF = int(1e9) # 무한을 의미하는 값으로 10억을 설정
22

3-
# 노드의 개수, 간선의 개수를 입력 받습니다.
3+
# 노드의 개수, 간선의 개수를 입력받기
44
n, m = map(int, input().split())
5-
# 2차원 리스트(그래프 표현)를 만들고, 모든 값을 무한으로 초기화합니다.
5+
# 2차원 리스트(그래프 표현)를 만들고, 모든 값을 무한으로 초기화
66
graph = [[INF] * (n + 1) for _ in range(n + 1)]
77

8-
# 자기 자신에서 자기 자신으로 가는 비용은 0으로 초기화합니다.
8+
# 자기 자신에서 자기 자신으로 가는 비용은 0으로 초기화
99
for a in range(1, n + 1):
1010
for b in range(1, n + 1):
1111
if a == b:
1212
graph[a][b] = 0
1313

14-
# 각 간선에 대한 정보를 입력 받아, 그 값으로 초기화합니다.
14+
# 각 간선에 대한 정보를 입력 받아, 그 값으로 초기화
1515
for _ in range(m):
16-
# A에서 B로 가는 비용을 1로 설정합니다.
16+
# A에서 B로 가는 비용을 1로 설정
1717
a, b = map(int, input().split())
1818
graph[a][b] = 1
1919

20-
# 점화식에 따라 플로이드 워셜 알고리즘을 수행합니다.
20+
# 점화식에 따라 플로이드 워셜 알고리즘을 수행
2121
for k in range(1, n + 1):
2222
for a in range(1, n + 1):
2323
for b in range(1, n + 1):
2424
graph[a][b] = min(graph[a][b], graph[a][k] + graph[k][b])
2525

2626
result = 0
27-
# 각 학생을 번호에 따라 한 명씩 확인하며 도달 가능한지 체크합니다.
27+
# 각 학생을 번호에 따라 한 명씩 확인하며 도달 가능한지 체크
2828
for i in range(1, n + 1):
2929
count = 0
3030
for j in range(1, n + 1):

17/3.py

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,41 @@
11
import heapq
22
import sys
33
input = sys.stdin.readline
4-
INF = int(1e9) # 무한을 의미하는 값으로 10억을 설정합니다.
4+
INF = int(1e9) # 무한을 의미하는 값으로 10억을 설정
55

66
dx = [-1, 0, 1, 0]
77
dy = [0, 1, 0, -1]
88

9-
# 전체 테스트 케이스(Test Case)만큼 반복합니다.
9+
# 전체 테스트 케이스(Test Case)만큼 반복
1010
for tc in range(int(input())):
11-
# 노드의 개수를 입력 받습니다.
11+
# 노드의 개수를 입력받기
1212
n = int(input())
1313

14-
# 전체 맵 정보를 입력 받습니다.
14+
# 전체 맵 정보를 입력받기
1515
graph = []
1616
for i in range(n):
1717
graph.append(list(map(int, input().split())))
1818

19-
# 최단 거리 테이블을 모두 무한으로 초기화합니다.
19+
# 최단 거리 테이블을 모두 무한으로 초기화
2020
distance = [[INF] * n for _ in range(n)]
2121

22-
x, y = 0, 0 # 시작 위치는 (0, 0)입니다.
23-
# 시작 노드로 가기 위한 비용은 (0, 0) 위치의 값으로 설정하여, 큐에 삽입합니다.
22+
x, y = 0, 0 # 시작 위치는 (0, 0)
23+
# 시작 노드로 가기 위한 비용은 (0, 0) 위치의 값으로 설정하여, 큐에 삽입
2424
q = [(graph[x][y], x, y)]
2525
distance[x][y] = graph[x][y]
2626

27-
# 다익스트라 알고리즘을 수행합니다.
27+
# 다익스트라 알고리즘을 수행
2828
while q:
29-
# 가장 최단 거리가 짧은 노드에 대한 정보를 꺼냅니다.
29+
# 가장 최단 거리가 짧은 노드에 대한 정보를 꺼내기
3030
dist, x, y = heapq.heappop(q)
31-
# 현재 노드가 이미 처리된 적이 있는 노드라면 무시합니다.
31+
# 현재 노드가 이미 처리된 적이 있는 노드라면 무시
3232
if distance[x][y] < dist:
3333
continue
34-
# 현재 노드와 연결된 다른 인접한 노드들을 확인합니다.
34+
# 현재 노드와 연결된 다른 인접한 노드들을 확인
3535
for i in range(4):
3636
nx = x + dx[i]
3737
ny = y + dy[i]
38-
# 맵의 범위를 벗어나는 경우 무시합니다.
38+
# 맵의 범위를 벗어나는 경우 무시
3939
if nx < 0 or nx >= n or ny < 0 or ny >= n:
4040
continue
4141
cost = dist + graph[nx][ny]

17/4.py

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,47 @@
11
import heapq
22
import sys
33
input = sys.stdin.readline
4-
INF = int(1e9) # 무한을 의미하는 값으로 10억을 설정합니다.
4+
INF = int(1e9) # 무한을 의미하는 값으로 10억을 설정
55

6-
# 노드의 개수, 간선의 개수를 입력 받습니다.
6+
# 노드의 개수, 간선의 개수를 입력받기
77
n, m = map(int, input().split())
8-
# 시작 노드를 1번 헛간으로 설정합니다.
8+
# 시작 노드를 1번 헛간으로 설정
99
start = 1
10-
# 각 노드에 연결되어 있는 노드에 대한 정보를 담는 리스트를 만듭니다.
10+
# 각 노드에 연결되어 있는 노드에 대한 정보를 담는 리스트를 만들기
1111
graph = [[] for i in range(n + 1)]
12-
# 최단 거리 테이블을 모두 무한으로 초기화합니다.
12+
# 최단 거리 테이블을 모두 무한으로 초기화
1313
distance = [INF] * (n + 1)
1414

15-
# 모든 간선 정보를 입력 받습니다.
15+
# 모든 간선 정보를 입력받기
1616
for _ in range(m):
1717
a, b = map(int, input().split())
18-
# a번 노드와 b번 노드의 이동 비용이 1이라는 의미입니다. (양방향)
18+
# a번 노드와 b번 노드의 이동 비용이 1이라는 의미(양방향)
1919
graph[a].append((b, 1))
2020
graph[b].append((a, 1))
2121

2222
def dijkstra(start):
2323
q = []
24-
# 시작 노드로 가기 위한 최단 경로는 0으로 설정하여, 큐에 삽입합니다.
24+
# 시작 노드로 가기 위한 최단 경로는 0으로 설정하여, 큐에 삽입
2525
heapq.heappush(q, (0, start))
2626
distance[start] = 0
2727
while q: # 큐가 비어있지 않다면
28-
# 가장 최단 거리가 짧은 노드에 대한 정보를 꺼냅니다.
28+
# 가장 최단 거리가 짧은 노드에 대한 정보를 꺼내기
2929
dist, now = heapq.heappop(q)
30-
# 현재 노드가 이미 처리된 적이 있는 노드라면 무시합니다.
30+
# 현재 노드가 이미 처리된 적이 있는 노드라면 무시
3131
if distance[now] < dist:
3232
continue
33-
# 현재 노드와 연결된 다른 인접한 노드들을 확인합니다.
33+
# 현재 노드와 연결된 다른 인접한 노드들을 확인
3434
for i in graph[now]:
3535
cost = dist + i[1]
3636
# 현재 노드를 거쳐서, 다른 노드로 이동하는 거리가 더 짧은 경우
3737
if cost < distance[i[0]]:
3838
distance[i[0]] = cost
3939
heapq.heappush(q, (cost, i[0]))
4040

41-
# 다익스트라 알고리즘을 수행합니다.
41+
# 다익스트라 알고리즘을 수행
4242
dijkstra(start)
4343

44-
# 가장 최단 거리가 먼 노드 번호 (동빈이가 숨을 헛간의 번호)
44+
# 가장 최단 거리가 먼 노드 번호(동빈이가 숨을 헛간의 번호)
4545
max_node = 0
4646
# 도달할 수 있는 노드 중에서, 가장 최단 거리가 먼 노드와의 최단 거리
4747
max_distance = 0

18/1.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ def union_parent(parent, a, b):
1414
else:
1515
parent[a] = b
1616

17-
# 여행지의 개수와 여행 계획에 속한 여행지의 개수 입력 받기
17+
# 여행지의 개수와 여행 계획에 속한 여행지의 개수 입력받기
1818
n, m = map(int, input().split())
19-
parent = [0] * (n + 1) # 부모 테이블 초기화하기
19+
parent = [0] * (n + 1) # 부모 테이블 초기화
2020

2121
# 부모 테이블상에서, 부모를 자기 자신으로 초기화
2222
for i in range(1, n + 1):
@@ -29,7 +29,7 @@ def union_parent(parent, a, b):
2929
if data[j] == 1: # 연결된 경우 합집합(Union) 연산 수행
3030
union_parent(parent, i + 1, j + 1)
3131

32-
# 여행 계획 입력 받기
32+
# 여행 계획 입력받기
3333
plan = list(map(int, input().split()))
3434

3535
result = True

18/2.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@ def union_parent(parent, a, b):
1414
else:
1515
parent[a] = b
1616

17-
# 탑승구의 개수 입력 받기
17+
# 탑승구의 개수 입력받기
1818
g = int(input())
19-
# 비행기의 개수 입력 받기
19+
# 비행기의 개수 입력받기
2020
p = int(input())
21-
parent = [0] * (g + 1) # 부모 테이블 초기화하기
21+
parent = [0] * (g + 1) # 부모 테이블 초기화
2222

2323
# 부모 테이블상에서, 부모를 자기 자신으로 초기화
2424
for i in range(1, g + 1):

18/3.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ def union_parent(parent, a, b):
1414
else:
1515
parent[a] = b
1616

17-
# 노드의 개수와 간선의 개수 입력 받기
17+
# 노드의 개수와 간선의 개수 입력받기
1818
n, m = map(int, input().split())
19-
parent = [0] * (n + 1) # 부모 테이블 초기화하기
19+
parent = [0] * (n + 1) # 부모 테이블 초기화
2020

2121
# 모든 간선을 담을 리스트와, 최종 비용을 담을 변수
2222
edges = []
@@ -26,7 +26,7 @@ def union_parent(parent, a, b):
2626
for i in range(1, n + 1):
2727
parent[i] = i
2828

29-
# 모든 간선에 대한 정보를 입력 받기
29+
# 모든 간선에 대한 정보를 입력받기
3030
for _ in range(m):
3131
x, y, z = map(int, input().split())
3232
# 비용순으로 정렬하기 위해서 튜플의 첫 번째 원소를 비용으로 설정

18/4.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ def union_parent(parent, a, b):
1414
else:
1515
parent[a] = b
1616

17-
# 노드의 개수 입력 받기
17+
# 노드의 개수 입력받기
1818
n = int(input())
19-
parent = [0] * (n + 1) # 부모 테이블 초기화하기
19+
parent = [0] * (n + 1) # 부모 테이블 초기화
2020

2121
# 모든 간선을 담을 리스트와, 최종 비용을 담을 변수
2222
edges = []
@@ -30,7 +30,7 @@ def union_parent(parent, a, b):
3030
y = []
3131
z = []
3232

33-
# 모든 노드에 대한 좌표 값 입력 받기
33+
# 모든 노드에 대한 좌표 값 입력받기
3434
for i in range(1, n + 1):
3535
data = list(map(int, input().split()))
3636
x.append((data[0], i))

18/5.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@
6666
if indegree[i] == 0:
6767
q.append(i)
6868

69-
# 사이클이 발생하는 경우 (일관성이 없는 경우)
69+
# 사이클이 발생하는 경우(일관성이 없는 경우)
7070
if cycle:
7171
print("IMPOSSIBLE")
7272
# 위상 정렬 결과가 여러 개인 경우

4/3.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ int main(void) {
1212
// 현재 나이트의 위치 입력받기
1313
cin >> inputData;
1414
int row = inputData[1] - '0';
15-
int column = inputData[0] - 'a';
15+
int column = inputData[0] - 'a' + 1;
1616

1717
// 8가지 방향에 대하여 각 위치로 이동이 가능한지 확인
1818
int result = 0;

0 commit comments

Comments
 (0)