문제
알고리즘
- 킹의 자표와 돌의 좌표를 아스키코드를 통해 x, y형태로 바꾼다.
- 킹이 움직이는 명령을 딕셔너리로 받아서 좌표 형태로 바꾼다.
- 반복문을 통해 명령을 입력받고 킹의 좌표와 돌의 좌표를 움직여준다.
코드
import sys
k, s, n = map(str, sys.stdin.readline().split())
k = list(map(int, [ord(k[0]) - 64, k[1]]))
s = list(map(int, [ord(s[0]) - 64, s[1]]))
order = {'R': [1, 0], 'L': [-1, 0], 'B': [0, -1], 'T': [0, 1], 'RT': [1, 1], 'LT': [-1, 1], 'RB': [1, -1], 'LB': [-1, -1]}
for i in range(int(n)):
move = str(sys.stdin.readline().strip("\n"))
kx = k[0] + order[move][0]
ky = k[1] + order[move][1]
if 0 < kx <= 8 and 0 < ky <= 8:
if kx == s[0] and ky == s[1]:
sx = s[0] + order[move][0]
sy = s[1] + order[move][1]
if 0 < sx <= 8 and 0 < sy <= 8:
k = [kx, ky]
s = [sx, sy]
else:
k = [kx, ky]
print(chr(k[0] + 64) + str(k[1]))
print(chr(s[0] + 64) + str(s[1]))
github
'CodingTest > Baekjoon' 카테고리의 다른 글
[baekjoon] 백준 11723번(자바): 집합 (0) | 2022.08.13 |
---|---|
[baekjoon] 백준 1205번(파이썬): 등수 구하기 (0) | 2022.08.10 |
[baekjoon] 백준 1929번(파이썬): 소수 구하기 (0) | 2022.08.07 |
[baekjoon] 백준 7568번(파이썬): 덩치 (0) | 2022.07.21 |
[baekjoon] 백준 4673번(파이썬): 셀프 넘버 (0) | 2022.06.28 |