이것이 코딩 테스트다 - 구현 - 실전문제: 왕실의 나이트
input_data = input()
# column = ord(input_data[0]) - 96 #내 답
column = int(ord(input_data[0]) - int(ord('a'))) + 1 #책 답안 예시
row = int(input_data[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_column = column + step[0]
next_row = row + step[1]
if next_column>=1 and next_row<=8 and next_row>=1 and next_row<=8 :
result += 1
print(result)
#내 답안
column = ord(input_data[0]) - 96
#책 답안
column = int(ord(input_data[0]) - int(ord('a'))) + 1
알파벳으로 입력받은 열을 숫자로(1~8)변환시켜야겠다는 아이디어는 맞았지만 방법에 있어서 책의 답안도 있다.
나는 알파벳'a'의 유니코드 값이 96이라는 것을 알아내서 - 96
을 해주었지만 유니코드값을 모르는 경우는 책의 답안처럼 - ord('a')
하면 된다는 것을 배움.
ord()
: 어떤 문자의 유니코드 값을 알고싶을 때
chr()
: 어떤 유니코드 값에 해당하는 문자를 알고싶을 때