티스토리 뷰

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

 

1783번: 병든 나이트

첫째 줄에 체스판의 세로 길이 N와 가로 길이 M이 주어진다. N과 M은 2,000,000,000보다 작거나 같은 자연수이다.

www.acmicpc.net

문제

병든 나이트가 N × M 크기 체스판의 가장 왼쪽아래 칸에 위치해 있다. 병든 나이트는 건강한 보통 체스의 나이트와 다르게 4가지로만 움직일 수 있다.

  1. 2칸 위로, 1칸 오른쪽
  2. 1칸 위로, 2칸 오른쪽
  3. 1칸 아래로, 2칸 오른쪽
  4. 2칸 아래로, 1칸 오른쪽

병든 나이트는 여행을 시작하려고 하고, 여행을 하면서 방문한 칸의 수를 최대로 하려고 한다. 병든 나이트의 이동 횟수가 4번보다 적지 않다면, 이동 방법을 모두 한 번씩 사용해야 한다. 이동 횟수가 4번보다 적은 경우(방문한 칸이 5개 미만)에는 이동 방법에 대한 제약이 없다.

체스판의 크기가 주어졌을 때, 병든 나이트가 여행에서 방문할 수 있는 칸의 최대 개수를 구해보자.

코드

import sys
n, m = map(int, sys.stdin.readline().split())
if n == 1:
    sys.stdout.write('1')
elif n == 2:
    sys.stdout.write(str(min(4, (m - 1) // 2 + 1)))
elif m <= 6:
    sys.stdout.write(str(min(4, m)))
else:
    sys.stdout.write(str(m - 2))

풀이

세로 길이가 1이면 모든 움직이는 방법이 오른쪽으로 움직이므로 움직일 수 없다. 첫 칸만 인정되어 1이다.

세로 길이가 2이면 위로 1칸, 아래로 1칸 움직이는 방법으로만 움직일 수 있고, 최댓값은 4이다.

가로 길이가 6 이하면, 4번 움직일 수 있어 최댓값이 4이다.

그 이외의 경우 가로 길이 - 2 가 정답이다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
TAG
more
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함