KeysAndRooms
Published at 2021-09-05
class Solution:
def canVisitAllRooms(self, rooms: List[List[int]]) -> bool:
isOpen = [False for i in range(len(rooms))]
isOpen[0] = True # 첫 방 이미 열림
keyPocket = rooms[0] # 이미 열린 첫번째방에서 열쇠 꺼냄
while len(keyPocket) > 0:
key = keyPocket.pop() # 주머니에서 열쇠 하나꺼내서
if isOpen[key] == False: # 잠겨있으면?
isOpen[key] = True # 열고
keyPocket.extend(rooms[key]) # 거기있는 열쇠 줍고
if False in isOpen:
return False
return True