2016년 9월 24일 토요일

BOJ 1783 병든 나이트

병든 나이트의 움직일 수 있는 방법 4가지를 보면 오른쪽 방향으로만 움직이게 된다.
맨 왼쪽 아래에서 시작하고, 오른쪽으로만 이동하고, 또한 이동한다면 무조건 옆으로 한 칸(한 열) 혹은 두 칸을 이동해야 한다. 그리고 4번 이상 이동할 경우 움직일 수 있는 방법 4가지를 한 번씩은 써야한다. 4가지 방법 중 2가지 방법이 옆으로(오른쪽으로) 두 칸 이동하는 방법이므로 일반적으로 방문할 수 있는 칸의 최대값은 열의 길이-2 가 될 것이다.

이제 세세한 조건을 따져보자. 최대의 칸을 방문하면서 4번 이상 이동해야만 하는 경우는 열의 길이가 6 이상일 때이다. 열의 길이가 5만되도 한 칸 한 칸 두 칸 이동으로 3번 이동하거나, 그냥 4번째 열까지만 이동해서 최대 4개의 칸을 방문할 수 있다.

일단 행의 길이가 3 이상이고,
열의 길이가 1일 때는 1, 2일 때는 2, 3일 때는 3, 4일 때는 4, 5일 때나, 6일 때는 열 끝까지 갈 필요없이 4일 때 처럼 움직여서 최대 4개의 칸을 방문할 수 있다.
7칸부터는 열의 길이-2 가 될 것이다.

그리고 행의 길이가 3 미만일 때를 생각해봐야 한다.
행의 길이가 1이면  1,
2일 때는 열의 길이가 2 이하이면 1, 열의 길이가 3이상 6이하이면 (열의 길이)-(열의 길이)/2
열의 길이가 7이상이면 4

한 번 코드를 짜보자.
AC를 받았다.


댓글 없음:

댓글 쓰기