출처

https://www.acmicpc.net/problem/14890

과정

  1. 2N개 이므로 행 과 열로 나눠서 탐색을 진행하려고 하였다.
  2. 행으로 탐색할 때는 열좌표를 고정 열로 탐색을 할 때는 행좌표를 고정 시키고 탐색을 진행하였다.
  3. 기저 조건으로 탐색하는 좌표가 n-1에 도달하였다면 지나갈 수 있는 길이므로
    최종 결과 값에 1을 더해주고 return해주었다.

  4. 높이 차가 1이어야 하므로 나눌 수 있는 경우를 세가지로 나누었다.

  5. 첫번째는 현재좌표 값과 다음 값이 같을 경우
    같으니깐 바로 다음좌표로 넘어가도록 하였다.

  6. 두번째는 현재좌표 값보다 다음 좌표 값이 1 클 경우
    놓을 수 있는 경사로가 l개 이상이라면 경사로를 놓고 지나갈 수 있으므로
    다음으로 가고 경사로 갯수를 1로 초기화(경사로를 놓았으므로) 한다.
    l개 미만으로 있다면 갈 수 없으므로 return해준다.

  7. 세번째는 현재좌표 값이 다음 좌표값 보다 1 클 경우
    l개를 놓아도 범위를 안벗어난다면 다음 좌표부터 l개가 다음 좌표 값과 같은지 확인 한 후 l개가 같으면 경사로를 놓고 지나갈 수 있으므로 l개 길이 만큼의 경사로를 놓고난 후 좌표로 이동하고 경사로는 0으로 초기화 해준다.

  8. res(최종 갈 수 있는 길)을 출력해준다.

정답 코드