행복 왕국의 왕실 정원은 체스판과 가은 8 x 8 좌표 평면이다.
왕실 정원의 특정한 한 칸에 나이트가 서 있다.
나이트는 매우 충성스러운 신하로서 매일 무술을 연마한다.
나이트는 말을 타고 있기 때문에 이동을 할 때는 L자 형태로만 이동할 수 있으며 정원 밖으로는 나갈 수 없다.
나이트는 특정한 위치에서 다음과 같은 2가지 경우로 이동할 수 있다.
1. 수평으로 두 칸 이동한 뒤에 수직으로 한 칸 이동하기
2. 수직으로 두 칸 이동한 뒤에 수평으로 한 칸 이동하기
입력조건
- 첫째 줄에 8 x 8 좌표 평면상에 현재 나이트가 위치한 곳의 좌표를 나타내는 두 문자로 구성된 문자열이 입력된다. 입력 문자는 a1처럼 열과 행으로 이뤄진다.
출력예시
- 첫째 줄에 나이트가 이동할 수 있는 경우의 수를 출력하시오.
input_data = input()
row = int(input_data[1]) # 뒤에 숫자 부분
column = int(ord(input_data[0])) - int(ord('a')) + 1 # ord 아스키 코드를 숫자로 ex) a - a = 0 + 1 좌표 1
steps = [(-2, - 1), (-1, -2),(1, -2),(2, -1),(2, 1),(1, 2),(-1, 2),(-2, 1)]
# 좌표 움직임 (체스 나이트 움직임 알면 쉽게 구할 수 있음)
# o(1,1)
# o(2,3) -> 1, 2
# o(3, 2) -> 2, 1 이런 식으로 상, 하, 좌, 우 2쌍 -> 8가지 좌표 도출
result = 0
for step in steps:
next_row = row + step[0] # 원래 행에 더하다
next_column = column + step[1] # 원래 열에 더하다
if 1 <= next_row <= 8 and 1 <= next_column <= 8: # 범위 안에 있는 경우에만
result += 1
print(result)