티스토리 뷰
https://www.acmicpc.net/problem/1783
문제
병든 나이트가 N × M 크기 체스판의 가장 왼쪽아래 칸에 위치해 있다. 병든 나이트는 건강한 보통 체스의 나이트와 다르게 4가지로만 움직일 수 있다.
- 2칸 위로, 1칸 오른쪽
- 1칸 위로, 2칸 오른쪽
- 1칸 아래로, 2칸 오른쪽
- 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 가 정답이다.
'학습 내용 > 백준 문제풀이' 카테고리의 다른 글
백준 12904 파이썬 - A와 B (0) | 2022.09.03 |
---|---|
백준 12970 파이썬 - AB (0) | 2022.09.03 |
백준 10610 파이썬 - 30 (0) | 2022.09.01 |
백준 1744 파이썬 - 수 묶기 (0) | 2022.08.31 |
백준 1541 파이썬 - 잃어버린 괄호 (0) | 2022.08.23 |