-문제: https://www.acmicpc.net/problem/1783

 

1783번: 병든 나이트

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

www.acmicpc.net

 

-정답풀이: 

세로 길이가 1이라면 어느 이동방법도 쓸 수가 없어서 1(시작지점,왼쪽 맨 아래)을 출력해준다

세로 길이가 2라면 2번,3번 방법만 쓸 수 있다. 모든 이동 방법을 쓰는게 아니므로 4와 (가로+1)//2의 값 중 작은걸 출력해준다 

세로 길이가 3 이상일때, 

가로가 6이하라면 모든 방법을 쓸 수가 없다. 1번과 4번만을 이용하는 게 최댓값이므로 4와 m의 중 작은 것을 출력해준다

가로가 7이상이라면 모든 방법을 쓸 수 있고, 알맞는 값을 출력해준다(m-2)

 

왜 (m+1)//2이고, m이고,m-2인지 모르겠네,,, 

n,m=map(int,input().split())
if n==1: #세로 길이 1일 때
    print(1)
elif n==2: #세로 길이 2일 때
    print(min(4,(m+1)//2))
else: #세로 길이 3이상일 때
    if m<=6: #가로가 6이하일때
        print(min(4,m))
    else:
        print(m-2)

+ Recent posts