[7일차] Implementation_왕실의 나이트

Tourist_X·2022년 1월 31일
0

🏆Today Code Test


🛠Problem Approach

문제

행복 왕국의 왕실 정원은 8 x 8 좌표 평면입니다. 나이트는 이동할 때 L자 형태로만 이동할 수 있으며 정원 밖으로는 나갈 수 없습니다.

나이트는 2가지 경우로 이동이 가능합니다.

  • 수평 2칸 이동, 수직 1칸 이동
  • 수직 2칸 이동, 수평 1칸 이동

이 때, 나이트가 주어진 위치에서 이동할 수 있는 경우의 수를 출력하는 프로그램을 작성하세요

🔑Solution

내 코드

cur = input()

x = ord(cur[0]) - 97
y = int(cur[1])-1

# 방향벡터 
dx = [2, 2, -2, -2, 1, 1, -1, -1]
dy = [1, -1, 1, -1, 2, -2, 2, -2]
cnt = 0

for i in range(8):
    nx = x + dx[i]
    ny = y + dy[i]

if nx < 8 and nx > -1 and ny < 8 and ny > -1: # 체스판 '안'인지 확인 (index 0부터 시작)
        cnt += 1
print(cnt)

강의 코드

input_data = input()
row = int(input_data[1])
column = int(ord(input_data[0])) - int(ord('a')) + 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_row = row + step[0]
	next_column = column + step[1]
	
	if next_row >= 1 and next_row <= 8 and next_column >=1 and next_column <= 8:
			result += 1

print(restult)
profile
Always, Better than.

0개의 댓글