왕실의 나이트
이것이 코딩 테스트다 책에 있는 실전 문제 풀이이다.
구현문제로 ord를 사용하면 간단하게 풀 수 있었다.
ord( )
문자열을 아스키코드로 반환할 수 있는 함수이다.
>>> ord('a')
97
>>> ord('z')
122
chr( )
아스키코드를 문자열로 변환하는 함수이다.
>>> chr(65)
A
>>> chr(90)
Z
location = input()
# 문자를 유니코드 정수로 바꾸기 : ord
col = int(ord(location[0])-97)
row = int(location[1])-1
cnt = 0
dx = [2, 2, -2, -2, 1, -1, 1, -1]
dy = [1, -1, 1, -1, 2, 2, -2, -2]
# 8가지 방향에 대하여 각 위치로 이동이 가능한지 확인
for i in range(8):
nx = row + dx[i]
ny = col + dy[i]
if 0 <= nx < 8 and 0 <= ny < 8:
cnt += 1
print(cnt)