경사로
https://www.acmicpc.net/problem/14890
삼성 코딩 테스트 기출 문제이다.
시뮬레이션 문제이다.
풀이
행을 모두 체크한다.
i행의 j열은 세 가지 경우로 나뉜다.
- j+1열과 같은 높이
- j+1열을 체크한다.
- j+1열 높이보다 1작음
- 왼쪽 방향으로 경사로를 세울 수 있는지 체크한다.
- 다음 그림과 같이 1번 지점은 j+1열 높이보다 1 작기 때문에 2번 방향으로 체크한다.
- j+1열 높이보다 1높음
- 오른쪽 방향으로 경사로를 세울 수 있는지 체크한다.
- 다음 그림과 같이 1번 지점은 j+1열 높이보다 1 높기 때문에 2번 방향으로 체크한다.
- j+1열과 같은 높이
열을 모두 체크한다.
행을 체크하는 경우와 동일하다.
코드로 옮기는 것이 쉽지 않아 해설을 보고 해결했다.