3184번 - 양
원래 C++ 사용자라 익숙하지는 않은데요
계속 시간초과가 납니다.
visited=[]를 전역 선언해주어 방문했던 곳을 재방문하지 않도록 해주었고
한번 탐색을 돌 때마다(늑대를 발견하는 좌표에서) BFS를 시작, 늑대와 양의 개수를 구한 뒤 조건에 맞게 처리하였습니다.
그런데 계속 시간 초과가 뜨네요.
음 한번 방문했던 곳을 재방문하지도 않고, 뭔가 C++에서 accept 되었던 코드를 그대로 군더더기 없이 conversion 한 듯 보이는데(?) 왜 이런 결과가 나오는지 궁금합니다.
도와주시면 대단히 감사합니다.
혹시 해결하셨나요?
`visited`가 리스트라서 (x, y) not in visited'가 선형시간이라서 느립니다. 이 부분을 O(1)로 하시면 됩니다.
예를들어 visited를 딕셔너리로 바꾸시거나, visited를 2차원배열로 만들어서 True, False로 확인하는 방법이 있습니다.
@ahj1592 님, 댓글 달아주셔서 감사합니다! 네네 c++에서 하던 대로 visited를 2차원 배열로 만들어서 O(1)로 접근하도록 했더니 accepted 되었었습니다ㅎㅎ
앞으로 계속 python으로 관련 문제를 풀 때 visited도 2차원으로 선언해서 풀고 있습니다.
감사합니다 ㅎㅎ
댓글을 작성하려면 로그인해야 합니다.
celestial 2년 전
원래 C++ 사용자라 익숙하지는 않은데요
계속 시간초과가 납니다.
visited=[]를 전역 선언해주어 방문했던 곳을 재방문하지 않도록 해주었고
한번 탐색을 돌 때마다(늑대를 발견하는 좌표에서) BFS를 시작, 늑대와 양의 개수를 구한 뒤 조건에 맞게 처리하였습니다.
그런데 계속 시간 초과가 뜨네요.
음 한번 방문했던 곳을 재방문하지도 않고, 뭔가 C++에서 accept 되었던 코드를 그대로 군더더기 없이 conversion 한 듯 보이는데(?) 왜 이런 결과가 나오는지 궁금합니다.
도와주시면 대단히 감사합니다.