Problem : BFS 스페셜 저지
유형 : BFS, 그래프
해결 전략
- 순서가 올바르지 않다는것은, 접근해서는 안되는 차례에 방문한다는것이다.
- 다음에 접근 할 수 있는 노드들을 목록에 저장하고, 다음에 접근하려는 것이 목록에 있는지 확인한다.
잘못된 접근 방법
- 일단
BFS
를 진행하며, 접근한 순서를 기록해둔다. - 접근하려는 정점들의 순서를 확인한다.
- 접근하려는 정점이 이전보다 줄었거나, 이전과 2단계 이상 차이나면 오답처리한다.
- 해당 방법은 반례가 있었는지
50%
에서 오답처리되었다
주의할 점
- 시작점은 반드시 1 이여야한다.
문제조건
- 큐에 넣는 순서도 조심해야한다.
- input에 맞춰서
BFS
를 진행해야한다. - 접근하려는 원소를 큐에 넣어서 비교해야한다.
- 나의 경우 한번에 큐에 다 때려넣고, 원소 유무만 확인 한후
BFS
를 진행하여 오답처리되었다.
- input에 맞춰서
풀이
입력받는 순서대로 접근하기 위해 큐를 이용했다.
- input에 맞춰서
BFS
를 진행해야한다. FIFO
방식을 이용하기 위해 큐를 이용했다.
BFS를 진행한다.
- 각 정점에서
BFS
를 통해 접근 가능한 다른 정점들을set
에 저장 한다.set
을 이용한 이유는 존재 여부를 빠르게 확인하기 위해 사용했다.
set
에 들어가 있는 정점들은 다음에 전부 접근 할 수 있는 목록들이다.- 접근하려는것이
set
에 없다면, 잘못된 접근 순서이다.
- 접근하려는것이
코드
1 |
|
피드백
반례를 생각하는 능력을 좀 더 키우자.