PS 공부

[이것이 코딩테스트다 with 파이썬] chap4 구현. 왕실의 나이트

Min00 2024. 3. 22. 14:31

8*8 좌표 평면에서 나이트가 움직인다

 

나이트는 2가지 경우로 이동한다

1. 수평으로 두 칸 이동, 수직으로 한 칸 이동

2. 수직으로 두 칸 이동, 수평으로 한 칸 이동

 

8*8 평면에서 나이트의 위치가 주어졌을 때, 나이트가 이동할 수 있는 경우의 수를 출력

 

   a b c d

1

2

3

4

이런식으로 생겼고, a1과 같이 입력이 주어졌을 때, 이동할 수 있는 경우의 수를 출력

 

< 풀이 >

일단 다 뚫려있으면 총 8가지 경우가 가능

좌2위1, 좌2아래1

우2위1, 우2아래1

좌1위2, 좌1아래2

우1위2, 우1아래2

 

걍 다 검사해라

 

 

task

1. a~h까지 입력받았을 때 숫자로 변환

2. 8가지 경우에서 좌표가 0~7 범위 이내면 가능 그걸 벗어나면 count가 되지 않게 구현 

 

<소스 코드>

dir = [[-2,-1],[-2,1],[2,-1],[2,1],[-1,-2],[-1,2],[1,-2],[1,2]]

move = input()

# 문자를 숫자로 변환
r = ord(move[0][0])-ord('a')
c = int(move[1])-1

count = 0
for d in dir:
    new_r = r+d[0]
    new_c = r+d[1]

    if 0 <= new_r < 8 and 0<= new_c < 8:
        count+=1

print(count)

 

아직은 쉽군

백준을 허투루 한게 아니었다!