활주로 건설

https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWIeW7FakkUDFAVH

경우의 수를 나눈 후 조건에 맞게 짜려고 하였다. 해설을 보고 DFS로 풀면 쉽게 풀 수 있다는 것을 알았다.

풀이

  1. 모든 행과 열을 차례대로 체크한다.

  2. 현재 위치와 다음 위치를 비교한다.

    • 같은 높이인 경우 : 다음 위치 부터 체크

    • 오르막인 경우 : 현재 위치 기준해서 왼쪽으로 경사로 둘 수 있는지 체크

    • 내리막인 경우 : 현재 위치 기준해서 오른쪽으로 경사로 둘 수 있는지 체크

    • 그 이외의 경우 : 이번 행이나 열은 실패

코드

Comments