💻 입력 조건

  • 첫째 줄에 8 x 8 좌표 평면상에서 현재 나이트가 위치한 곳의 좌표를 나타내는 두 문자로 구성된 문자열이 입력된다. 입력 문자는 a1처럼 열과 행으로 이뤄진다.

💻 출력 조건

  • 첫째 줄에 나이트가 이동할 수 있는 경우의 수를 출력하시오.

💻 입력 예시

a1

💻 출력 예시

2

📖 문제 해결
나이트가 위치한 좌표에서 '(1) 수평으로 두 칸 이동한 뒤에 수직으로 한 칸 이동하기' 및 '(2) 수직으로 두 칸 이동한 뒤에 수평으로 한 칸 이동하기'가 가능한 지 확인할 수 있는 코드를 구현하여 문제를 해결하였습니다.

# 영문자 : 열
# 숫자 : 행
coordi = list(map(str,input()))

move_1 = [-1, +1]
move_2 = [-2, +2]

count = 0

# '수직으로 두 칸 이동한 뒤에 수평으로 한 칸 이동'이 가능한지 확인
for first_move in move_2:
    present_1 = ord(coordi[0]) - 97 + first_move
    
    for second_move in move_1:
        present_2 = int(coordi[1]) - 1 + second_move
        
        # 이동이 가능하다면 count += 1
        if 0 <= present_1 and present_1 <= 7 and 0 <= present_2 and present_2 <= 7:
            count += 1


# '수평으로 두 칸 이동한 뒤에 수직으로 한 칸 이동'이 가능한지 확인
for first_move in move_2:
    present_1 = int(coordi[1]) - 1 + first_move
    
    for second_move in move_1:
        present_2 = ord(coordi[0]) - 97 + second_move
        
        # 이동이 가능하다면 count += 1
        if 0 <= present_1 and present_1 <= 7 and 0 <= present_2 and present_2 <= 7:
            count += 1
            
            
print(count)
profile
AI를 공부하고 있는 학생입니다:)

0개의 댓글