728x90
반응형
* 해당 문제 및 해설은 "이것이 코딩 테스트 다 with 파이썬" 책을 기준으로 요약 및 정리 하여 작성하였습니다.
http://www.yes24.com/product/goods/91433923
아이디어를 코드로 바꾸는 구현
구현 이란 '머릿속에 있는 알고리즘을 소스코드로 바꾸는 과정' 이다.
구현 문제 유형은 모든 범위의 코딩 테스트 문제 유형을 포함하는 개념이다.
문제 설명 : 구현 - 왕실의 나이트
행복 왕국의 왕실 정원은 체스판과 같은 8 x 8 좌표 평면이다.
나이트는 말을 타고 있기 때문에 이동을 할 때는 L 자 형태로만 이동할 수 있으며, 정원 밖으로는 나갈 수 없다.
나이트는 특정한 위치에서 다음과 같은 2가지 경우로 이동할 수 있다.
1. 수평으로 두 칸 이동한 뒤에 수직으로 한 칸 이동하기
2. 수직으로 두 칸 이동한 뒤에 수평으로 한 칸 이동하기
아래 사진과 같이 체스판이 있다고 가정해보자.
행 위치를 표현할 때는 1 부터 8로 표현하며, 열 위치를 표현할 때는 a 부터 h 로 표현한다.
만약 시작하는 곳이 a1 이라면, 갈 수 있는 곳은 b3, c2 가 있다. (나머지는 영역 외)
1. 오른쪽으로 두칸 이동 후 아래로 한 칸 이동하기(c2)
2. 아래로 두 칸 이동 후 오른쪽으로 한 칸 이동하기(b3)
a1 | b1 | c1 | d1 | e1 | f1 | g1 | h1 |
a2 | b2 | c2 | d2 | e2 | f2 | g2 | h2 |
a3 | b3 | c3 | d3 | e3 | f3 | g3 | h3 |
a4 | b4 | c4 | d4 | e4 | f4 | g4 | h4 |
a5 | b5 | c5 | d5 | e5 | f5 | g5 | h5 |
a6 | b6 | c6 | d6 | e6 | f6 | g6 | h6 |
a7 | b7 | c7 | d7 | e7 | f7 | g7 | h7 |
a8 | b8 | c8 | d8 | e8 | f8 | g8 | h8 |
입력 조건
- 첫째 줄에 8 x 8 좌표 평면상에서 현재 나이트가 위치한 곳의 좌표를 나타내는 두 문자로 구성된 문자열이 입력된다. 입력 문자는 a1 처럼 열과 행으로 이뤄진다.
출력 조건
- 첫째 줄에 나이트가 이동할 수 있는 경우의 수를 출력하시오.
예시
입력 예시 | 출력 예시 |
a1 | 2 |
답변 및 해설
# input_data 받기
input_data = input()
x = int(input_data[1])
y = int(ord(input_data[0]) - ord('a')) + 1
# 나이트가 이동할 수 있는 8가지
steps = [
(-2, -1), (-1, -2), (1, -2), (2, -1),
(2, 1), (1, 2), (-1, 2), (-2, 1)
]
# 8가지 방향에 대하여 각 위치로 이동이 가능한지 확인
result = 0
for step in steps:
dx = x + step[0]
dy = y + step[1]
if(dx >= 1 and dx <= 8 and dy >= 1 and dy <= 8):
result += 1
print(result)
개인적인 생각
이전 블로그에서 작성했던 것 처럼 상하좌우 문제와 거의 비슷하다.
어렵지 않게 풀 수 있었을 것이라 생각한다.
X, Y 축이 살짝 헷갈렸지만, 풀만 했다.
오늘의 개발자 명언
나는 드디어 상위호환성 Upward Compatible이 의미하는 바를 깨달았다.
그것은 옛날에 만든 실수까지 그대로 유지해야 한다는 뜻이다. 제길.
(Dennie van Tassel, 컴퓨터 과학자, ‘프로그래밍 언어의 역사’를 저술했다.)
출처 : 프로그래밍에 관한 명언 101가지
728x90
반응형
'개발 > Coding Test - Python' 카테고리의 다른 글
[Python] 이것이 코딩테스트다 with 파이썬 - 탐색 알고리즘 DFS/BFS - BFS(Breath-First-Search)편 (0) | 2023.01.22 |
---|---|
[Python] 이것이 코딩테스트다 with 파이썬 - 탐색 알고리즘 DFS/BFS - DFS(Depth-First-Search)편 (0) | 2023.01.21 |
[Python] 이것이 코딩테스트다 with 파이썬 - 구현 - 시각 (0) | 2023.01.20 |
[Python] 이것이 코딩테스트다 with 파이썬 - 구현 - 상하좌우 (0) | 2023.01.20 |
[Python] 이것이 코딩테스트다 with 파이썬 - 구현이란? (0) | 2023.01.20 |