반응형
BOJ 1976 : 여행 가자
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
import java.util.Vector;
public class Main {
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int[][] board = new int[n][n];
int spot = Integer.parseInt(br.readLine());
int[] spotlist = new int[spot];
StringTokenizer str;
for (int i = 0; i < n; i++) {
str = new StringTokenizer(br.readLine(), " ");
for (int j = 0; j < n; j++)
board[i][j] = Integer.parseInt(str.nextToken());
}
str = new StringTokenizer(br.readLine(), " ");
for (int i = 0; i < spot; i++) {
spotlist[i] = Integer.parseInt(str.nextToken());
}
Vector<Integer> v = new Vector<>();
boolean travel = true;
for (int i = 0; i < spot - 1; i++) {
int cur = spotlist[i]-1;
int next = spotlist[i + 1]-1;
if (board[cur][next] == 1 || cur == next)
continue;
v.clear();
for (int j = 0; j < n; j++) {
if (board[cur][j] == 1)
v.add(j);
}
if (v.size() != 0) {
for (int j = 0; j < v.size(); j++) {
int t = v.get(j);
for (int k = 0; k < n; k++) {
if (board[t][k] == 1 && !v.contains(k)) {
v.add(k);
}
}
}
}
if (!v.contains(next)) {
travel = false;
break;
}
}
if (travel)
System.out.println("YES");
else
System.out.println("NO");
}
}
반응형
'코딩 문제 풀이 > 백준' 카테고리의 다른 글
[백준] 자바 문제 풀이 10026 : 골드5 (1) | 2023.10.06 |
---|---|
[백준] 자바 문제 풀이 2014 : 골드1 (0) | 2023.10.06 |
[백준] 자바 문제 풀이 17299 : 골드3 (0) | 2023.10.06 |
[백준] 자바 문제 풀이 2357 : 골드1 (0) | 2023.10.06 |
[백준] 자바 문제 풀이 1766 : 골드2 (1) | 2023.10.04 |