728x90
[백준알고리즘] 1783번: 병든 나이트 -Python
https://www.acmicpc.net/problem/1783
다른 분들의 코드도 봤는데 모두 비교문으로만 작성했다. 물론 약간씩 다르긴 했지만.
문제에서 중요한 점은 다음과 같다.
1. 항상 나이트가 오른쪽으로만 이동한다.
2. 4번 "이상" 이동 시에는 모든 이동 방법이 한 번 이상씩 사용되어야 한다.
3. 현재 위치한 점도 포함해서 센다.
1의 조건때문에 오른쪽으로 얼마나 이동할 수 있는가가 중요하다.
2의 조건때문에 오른쪽으로의 길이를 무시한다면 4가지의 이동 방법을 모두 한 번 이상씩 사용하기 위해서는 높이가 중요해진다. 또한 4번 이전에 이동시에는 중복이 가능하다는 점이 중요하다.
직접 그림을 그려가면서 체크해봤따 ㅎㅎ;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
import sys
n, m = map(int, sys.stdin.readline().split())
ans = 1
if n >= 3:
if m >= 7:
ans = m-2
elif m >= 4:
ans = 4
else:
ans = m
elif n == 2:
if m >= 7:
ans = 4
else:
ans = (m + 1)//2
sys.stdout.write(str(ans))
|
잘못된 점이나 부족한 점 지적해주시면 감사하겠습니다
728x90
'algorithm > 백준알고리즘' 카테고리의 다른 글
[백준알고리즘] 1744번: 수 묶기 -Python (0) | 2020.03.07 |
---|---|
[백준알고리즘] 2873번: 롤러코스터 -Python (2) | 2020.03.07 |
[백준알고리즘] 10610번: 30 -Python (0) | 2020.03.06 |
[백준알고리즘] 2875번: 대회 or 인턴 -Python (0) | 2020.03.06 |
[백준알고리즘] 2261번: 가장 가까운 두 점 -Python (0) | 2020.03.06 |