이전 구현 예제 문제 중 상하좌우와 비슷하게 풀이한 문제이다.
이동가능한 방향을 리스트에 넣어놓고, 현 위치에서 리스트를 반복문으로 돌리면서 이동가능한 위치를 하나하나 찾는 방식이다. 정사각형을
n = input()
row = int(n[1]) #문자열로 받아지기 때문에 int로 변환해줘야한다.
column = ord(n[0])-ord('a')+1
#ord()는 문자열을 아스키코드로 반환하는 함수이다. 숫자로 반환된다.
route = [(-2,-1), (-2,1), (2,1), (2,-1), (1,2),(1,-2),(-1,2),(-1,-2)]
#이동 가능한 방향 정의한다.
result = 0
#이동가능한 위치 개수
for i in route:
next_r = row + i[1]
next_c = column + i[0]
if next_r >= 1 or next_r <= 8 or next_c >= 1 or next_c <= 8:
result += 1
print(result)
상하좌우 문제에서 dx,dy로 이동가능 방향을 정의한 것처럼 여기서는 route로 방향을 정의했다.
이런 방법들은 처음 보는데 잘 기억해둬야겠다!
그리고 아스키 변환하는 ord()함수도 기억하기!