[알고리즘/백준] 1063번 : 킹(python)
처음에 실버 4라서 엄청 만만해게 봤는데 막상 구현하려니까 너무 어려웠다... 나는 딕셔너리를 사용해서 방향을 다 저장하고 풀었다.
king, stone, N = input().split()
k = list(map(int, [ord(king[0]) - 64, king[1]]))
s = list(map(int, [ord(stone[0]) - 64, stone[1]]))
move = {'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 _ in range(int(N)):
m = input()
nx = k[0] + move[m][0]
ny = k[1] + move[m][1]
if 0 < nx <= 8 and 0 < ny <= 8:
if nx == s[0] and ny == s[1]:
sx = s[0] + move[m][0]
sy = s[1] + move[m][1]
if 0 < sx <= 8 and 0 < sy <= 8:
k = [nx, ny]
s = [sx, sy]
else:
k = [nx, ny]
print(f'{chr(k[0] + 64)}{k[1]}')
print(f'{chr(s[0] + 64)}{s[1]}')
Author And Source
이 문제에 관하여([알고리즘/백준] 1063번 : 킹(python)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@y7y1h13/TIL-2022-03-24저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)