https://programmers.co.kr/learn/courses/30/lessons/67256
def solution(numbers, hand):
answer = []
left,right = [1,4,7], [3,6,9]
# 거리 계산을 위해 2차원 좌표로 변환
change_2d = {'*':(1,1),0:(1,2),'#':(1,3),
7:(2,1),8:(2,2),9:(2,3),
4:(3,1),5:(3,2),6:(3,3),
1:(4,1),2:(4,2),3:(4,3)}
# 현재 오른손, 왼손이 어디 위치해 있는지를 확인
h_left, h_right = '*','#'
for num in numbers:
if num in right:
answer.append('R')
h_right = num
elif num in left:
answer.append('L')
h_left = num
else:
r = abs(change_2d[h_right][0]-change_2d[num][0]) + abs(change_2d[h_right][1]-change_2d[num][1])
l = abs(change_2d[h_left][0]-change_2d[num][0]) + abs(change_2d[h_left][1]-change_2d[num][1])
if r > l:
answer.append('L')
h_left = num
elif r == l:
if hand == 'right':
answer.append('R')
h_right = num
else:
answer.append('L')
h_left = num
else:
answer.append('R')
h_right = num
return ''.join(answer)
'알고리즘' 카테고리의 다른 글
programmers 완주하지 못한 선수(Python) (0) | 2021.06.09 |
---|---|
programmers 타겟 넘버(Python) (0) | 2021.06.06 |
백준 13335번 : 트럭(Python) (0) | 2021.04.07 |
백준16918번 : 봄버맨(Python) (0) | 2021.03.31 |
백준20061 : 모노미노도미노2(Python) (0) | 2021.03.11 |