주니어로서의 백 걸음, 개발자로서의 한 걸음

구현 - 왕실의 나이트 본문

Python/개념 및 정리

구현 - 왕실의 나이트

코딩하는 친구 2023. 7. 27. 17:16

문제 해설: 왕실의 나이트 문제는 앞서 다루었던 '상하좌우' 문제와 유사하다. 나이트가 이동할 수 있는 경로를 하나씩 확인하여 이동하면 된다. 다만, 8 x 8 좌표 평면을 벗어나지 않도록 꼼꼼하게 검사하는 과정이 필요하다.

나이트는 2가지 경로로 움직일 수 있다고 했다.

  1. 수평으로 두 칸 이동한 뒤에 수직으로 한 칸 이동하기
  2. 수직으로 두 칸 이동한 뒤에 수평으로 한 칸 이동하기
a = input()
row = int(a[1])
column = int(ord(a[0])) - int(ord('a')) + 1

steps = [(2, -1), (2, 1), (-2, -1), (-2, 1), (1, -2), (1, 2), (-1, -2), (-1, 2)]

result = 0
for step in steps:
    next_row = row + step[0]
    next_column = column + step[1]
    if next_row >= 1 and next_row <= 8 and next_column >= 1 and next_column <= 8:
        result += 1
print(result)

출처: 나동빈, 『이것이 취업을 위한 코딩 테스트다 with 파이썬』(한빛미디어), 115-117p

'Python > 개념 및 정리' 카테고리의 다른 글

구현 - 시각  (0) 2023.07.27
구현 - 상하좌우  (0) 2023.07.26
1이 될 때까지  (0) 2023.06.27
숫자 카드 게임  (0) 2023.06.27
큰 수의 법칙  (0) 2023.06.27