백준 1783번 바로가기

나의 풀이

y,x=map(int,input().split())

if y  == 1:
  print(1)
elif y == 2:
  if x > 8:
    print(4)
  else:
    print((x+1)//2)
else:
  if x < 5:
    print(x)
  elif x < 7:
    print(4)
  else:
    print(x-2)

CODE REVIEW

  1. 세로 길이에 따라 조건을 나누고, 다시 가로 길이에 따른 세부 조건을 나누어줘야하는 문제였다.
  2. 한쪽으로만 움직이는 병든 나이트라 주어진 제약사항만 잘 지키면 푸는데는 크게 어렵지 않았다.