Skip to content

Commit 6a45359

Browse files
learntosurfMingguriguri
authored andcommitted
[BOJ] #1976.여행가자 / 골드4 / 60(X)
1 parent 9a519e1 commit 6a45359

File tree

1 file changed

+60
-0
lines changed

1 file changed

+60
-0
lines changed
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
'''
2+
3 > 도시의 수 N
3+
3 > 여행 계획에 속한 도시의 수 M
4+
5+
> NxN 행렬 (N개의 줄에 N개의 정수)
6+
0 1 0 1번 도시는 2번 도시와 연결
7+
1 0 1 2번 도시는 1,3번 도시와 연결
8+
0 1 0 3번 도시는 2번 도시와 연결
9+
10+
i 번째 줄의 j번째 수 (i, j)는 i번째 도시에서 j번째 도시의 연결 정보 (i-j)
11+
-> (i, j) = (j, i)
12+
1이면 연결, 0이면 연결 X
13+
같은 도시 여러번 방문 가능
14+
15+
1 2 3 > 여행 계획 (1번->2번->3번)
16+
1-2-3 => 모두 연결되어 있어서 YES
17+
'''
18+
19+
import sys
20+
input = sys.stdin.readline
21+
22+
N = int(input().strip()) # 도시의 수
23+
M = int(input().strip()) # 여행 계획에 속한 도시의 수
24+
25+
# 도시의 연결 정보
26+
graph = []
27+
for _ in range(N):
28+
graph.append(list(map(int, input().split()))) # NxN 행렬
29+
30+
plan = list(map(int, input().split())) # 여행 계획
31+
32+
'''
33+
그래서 어떻게..??
34+
여행계획에 속한 도시들이 모두 연결되어있는지를 확인
35+
-> 첫번째 도시에서 출발해서 다음 도시로 이동하는지 하나씩 확인..?
36+
'''
37+
def travel():
38+
for i in range(M-1): # (M-1)번 반복하면서 현재 도시에서 다음 도시로 이동 가능 여부 확인
39+
current_city = plan[i]-1 # 현재 도시
40+
next_city = plan[i+1]-1 # 다음 도시
41+
42+
if graph[current_city][next_city] == 0: # 이동할 수 없는 경우
43+
return 'NO'
44+
45+
return 'YES'
46+
47+
print(travel())
48+
'''
49+
아 이렇게 하면 근데 경유 하는 경우 고려를 못함.. 아 아닌가/?
50+
4
51+
3
52+
0 0 1 0
53+
0 0 0 1
54+
1 0 0 0
55+
0 1 0 0
56+
1 2 4
57+
일때 No
58+
59+
여러번 방문이 가능
60+
'''

0 commit comments

Comments
 (0)