문제

이것이 취업을 위한 코딩 테스트다 with 파이썬 (나동빈 저)

  • 8 * 8 크기의 체스판
  • 좌표를 입력 받으면, 나이트가 움직일 수 있는 경우의 수 구하기
# 체스판 예시
  a b c d e f g h
1 - - - - - - - -
2 - - - - - - - -
3 - - - - - - - -
4 - - - - - - - -
5 - - - - - - - -
6 - - - - - - - -
7 - - - - - - - -
8 - - - - - - - -

# 입력 예시
a1

# 출력 예시
2

풀이

  • 나이트는 수직 2회 수평 1회, 혹은 수평 2회 수직 1회로 움직인다.
  • 나이트가 움직일 수 있는 최대 경우의 수는 8가지다.

입력 받은 좌표에서 8가지 경우의 수를 비교했을 때,
체스판을 벗어나지 않은 경우의 수만 카운트 하면 된다.

y, x = input()
x = int(x)
y = ord(y)-96
move = [[-1, -2], [-1, 2], [1, -2], [1, 2], [-2, -1], [-2, 1], [2, -1], [2, 1]]
count = 0

for move_x, move_y in move :
    if x + move_x > 0 and x + move_x < 9 and y + move_y > 0 and y + move_y < 9 :
        count += 1

print(count)

댓글남기기