경사로

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

삼성 코딩 테스트 기출 문제이다.

시뮬레이션 문제이다.

풀이

  1. 행을 모두 체크한다.

    • i행의 j열은 세 가지 경우로 나뉜다.

      • j+1열과 같은 높이
        • j+1열을 체크한다.
      • j+1열 높이보다 1작음
        • 왼쪽 방향으로 경사로를 세울 수 있는지 체크한다.
        • 다음 그림과 같이 1번 지점은 j+1열 높이보다 1 작기 때문에 2번 방향으로 체크한다.

      • j+1열 높이보다 1높음
        • 오른쪽 방향으로 경사로를 세울 수 있는지 체크한다.
        • 다음 그림과 같이 1번 지점은 j+1열 높이보다 1 높기 때문에 2번 방향으로 체크한다.

  2. 열을 모두 체크한다.

    행을 체크하는 경우와 동일하다.

코드로 옮기는 것이 쉽지 않아 해설을 보고 해결했다.

Comments