문제 링크
- http://icpc.me/15886
문제 출처
- 제2회 천하제일 코딩대회 예선 B번
풀이
sol 01
이 방법은 대회 도중 떠올린 방법입니다.
각각의 칸을 정점으로 잡고, 해당 칸에서 갈 수 있는 곳을 간선으로 잇는다면 그래프가 만들어집니다.
그래프를 모델링 한 후, in-degree가 가장 큰 노드부터 선물을 놓을 것입니다. 선물을 놓은 자리의 in-degree를 0으로 바꾸고 인접한 정점들의 in-degree도 0으로 바꿔주어 해당 자리에는 선물을 더이상 놓을 필요가 없다고 체크합니다.
위 작업을 모든 노드의 in-degree가 0이 될 때까지 반복해주면 정답을 얻을 수 있습니다.
sol 02
이 방법은 대회 공식 풀이입니다.
EW 구간 안에서는 밖으로 나갈 수 없고, 오직 밖에서 안쪽으로 들어올 수만 있습니다.
EW 구간마다 하나씩 선물을 놓으면 어느 위치에서든지 선물을 가져갈 수 있습니다.
전체 코드
sol 01
1 |
|
sol 02
1 |
|