왕실의 나이트 [구현]
# 1. 체스판 8X8
# 2. 나이트는 L자 형태 이동만 (수평 2칸 수직 1칸 or 수평 1칸 수직 2칸)
# 3. 나이트의 위치가 주어졌을 때 이동할 수 있는 모든 경우의 수
# 4. 행 위치는 1~8 / 열 위치는 a~h
knight=input()
location_char=['a','b','c','d','e','f','g','h']
answer=0
for i in location_char:
if knight[0]==i:
location=[int(location_char.index(i)+1),int(knight[1])]
steps=[[2,1],[-2,1],[2,-1],[-2,-1],[1,2],[-1,2],[1,-2],[-1,-2]]
for step in steps:
if location[0]+step[0]>1 and location[1]+step[1]<9:
answer+=1
print(answer)
- steps 변수가 dx, dy 기능을 대신 수행.
책 풀이
input_data=input()
row=int(input_data[1])
column=int(ord(input_data[0])-int(ord('a')))+1
steps=[(-2,-1),(-1,-2),(1,-2),(2,-1),(2,1),(1,2),(-1,2),(-2,1)]
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(result)
- 리스트 인덱스 사용 말고도, column=int(ord(input_data[0])-int(ord('a')))+1 로 한 줄에 표현이 가능함.
Author And Source
이 문제에 관하여(왕실의 나이트 [구현]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@csy9604/왕실의-나이트-구현저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)