[이것이 코딩 테스트다] 구현 - 왕실의 나이트
5770 단어 algorithm불이것이 코딩 테스트다구현algorithm
구현
머릿속에 있는 알고리즘을 소스코드로 바꾸는 과정
완전 탐색 - 모든 경우의 수를 주저 없이 다 계산하는 해결 방법
시뮬레이션 - 문제에서 제시한 알고리즘을 한 단계씩 차례대로 직접 수행
✅ 문제
8 X 8 좌표 평면에서 나이트는 다음과 같은 2가지 경우로 이동할 수 있다.
1. 수평으로 두 칸 이동한 뒤에 수직으로 한 칸 이동하기
2. 수직으로 두 칸 이동한 뒤에 수평으로 한 칸 이동하기
나이트의 위치가 주어졌을 때 나이트가 이동할 수 있는 경우의 수를 출력하는 프로그램ㅇ을 작성하시오. 이 때 왕실의 정원에서 행 위치를 표현할 때는 1부터 8로 표현하면, 열 위치를 표현할 때는 a부터 h로 표현한다.
입력 예시
a1
출력 예시
2
➕ 문제 해설
input_data = input()
row = int(input_data[1])
# 문자를 숫자로 변경해서 사용
column = int(ord(input_data[0]) - 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(result)
문자를 한 칸씩 증가시키는 것보다 숫자를 증가시키는 것이 편하기 때문에 문자를 숫자로 바꿔서 사용한다.
이동할 수 있는 경우를 미리 저장해 놓고 경우를 하나씩 보면서 이동할 수 있는 지 확인한다.
📝 정리
구현 문제가 너무 어렵다.. 상하좌우 문제도 그렇게 실행할 수 있는 모든 경우의 수를 저장해 놓고 하나씩 확인하면서 사용하는 방법을 기억해 놔야 겠다. 그리고 그 경우를 튜플로 사용해서 저장해 놓는 것이 좋다.
튜플 사용한 문제
Author And Source
이 문제에 관하여([이것이 코딩 테스트다] 구현 - 왕실의 나이트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@xxwb__/이것이-코딩-테스트다-구현-왕실의-나이트저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)