0부터 n-1까지 잠긴 방이 있다. 각 방에는 다른 방을 열 수 있는 열쇠 다발이 존재하는데, 이를 이용해서 모든 방을 열 수 있다면 true를, 아니라면 false를 반환하라.
0번째 방은 미리 열어둔다고 가정한다.
class Solution {
public boolean canVisitAllRooms(List<List<Integer>> rooms) {
boolean[] room = new boolean[rooms.size()];
Stack<Integer> stack = new Stack<>();
stack.add(0);
room[0] = true;
while(!stack.isEmpty()){
int current = stack.pop();
List<Integer> tmp = rooms.get(current);
for(int i : tmp){
if(room[i]){
continue;
}else{
room[i] = true;
stack.add(i);
}
}
}
for(boolean b : room){
if(!b){
return false;
}
}
return true;
}
}