programmers.co.kr/learn/courses/30/lessons/67260
jacob님의 풀이(velog.io/@jacob0122/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EB%8F%99%EA%B5%B4-%ED%83%90%ED%97%98)를 참고하여 해결했습니다.
BFS로 풀이를 했고, 특정 노드간에 생기는 선-후 관계를 before[], nxt[]로 표현했습니다.
또한 임의의 노드 A를 방문할 수 있었지만, 노드A와 선-후 관계에서 '선'에 위치하는 노드를 아직 방문하지 않은 경우
노드A를 waitingList라는 set에 넣어서 '선'에 위치하는 노드를 방문할 때 노드 A도 방문할 수 있도록 해줍니다.
이런식으로 BFS를 특수하게 돌리면 order관계(== 선후 관계)를 만족하면서 방문 여부를 판단할 수 있습니다.
자세한 내용은 주석을 참고하시면 됩니다.
코드: github.com/cottory/algorithm/blob/master/PROGRAMMERS/PG67260.cc
'Algorithm > Programmers' 카테고리의 다른 글
[2019 카카오 기출] 크레인 인형뽑기 게임(JAVA) (0) | 2021.04.14 |
---|---|
[코딩테스트 연습] 방문 길이(py) (0) | 2021.02.24 |
[2020 카카오 기출] 외벽 점검 (0) | 2020.09.10 |
[코딩테스트 연습] 땅따먹기 (0) | 2020.09.10 |
[2018 카카오 기출] 추석 트래픽 (0) | 2020.09.09 |