구현 : 왕실의 나이트

DongJoo Kwak·2022년 4월 21일
0

알고리즘

목록 보기
5/6

📈금융 개발 블로그 : https://quantpro.co.kr/

시뮬레이션과 완전 탐색을 활용해야 하는 구현 문제 !

📌 문제 설명

  1. 왕실정원은 체스판과 같은 8 * 8좌표 평면이며, 나이트는 정원 밖을 벗어날 수

  2. 나이트의 이동 방법
    1) 수평으로 두 칸 이동한 뒤에 수직으로 한 칸 이동하기
    2) 수직으로 두칸 이동한 뒤에 수평으로 한 칸 이동하기

  3. 이처럼 8 * 8 좌표 평면상에서 나이트의 위치가 주어졌을 때 나이트가 이동할 수 있는 경우의 수를 출력

🥕입력예시

a1

🥕출력예시

2


📌 문제 풀이

  • 좌표이동 문제는 x,y연산을 통해 이동해야 한다. 따라서 움직일 수 있는 모든 좌표 경우의 수를 구해야 한다!
  • 문자열이 좌표에 있다면 아스키코드를 활용해 숫자로 변환하여 연산하자!
  • 좌표가 없는 맵 밖의 좌표 예외처리도 항상 생각하자!
  input_data = input()
  row = int(input_data[1])
  #column데이터는 알파벳 순이니 ord메서드를 활용해서 숫자로 변경
  column = int(ord(input_data[0]))- int(ord('a')) +1
  
  
  #나이트가 움직일 수 있는 경우의수
  steps = [(1,2),(2,1),(2,-1),(1,-2),(-1,-2), (-2,1),(-2,-1),(-1,2)]
  
  result = 0
  
  for step in steps:
   
    #이동하고자 하는 위치 홧인
    next_row = row+step[0]
    next_col = column + step[1]
      
    if next_row >=1 and next_row <=8 and next_col >=1 and next_col <=8:
      result += 1
  
  print(result)
profile
즐거운 개발 공간

0개의 댓글