파이썬 코딩테스트/프로그래머스
프로그래머스 / 키패드 누르기 / 파이썬
S.T.Lee
2022. 2. 24. 17:54
https://programmers.co.kr/learn/courses/30/lessons/67256
def solution(numbers, hand):
answer = ''
left = "*"
right = "#"
num_list = [[1,2,3],[4,5,6],[7,8,9],["*",0,"#"]]
num_dic = {}
for i in range(len(num_list)):
for j in range(len(num_list[i])):
num_dic[num_list[i][j]] = [i,j]
for num in numbers:
if num in [1,4,7]:
answer+="L"
left = num
elif num in [3,6,9]:
answer+="R"
right = num
else:
cur_num = num_dic[num]
left_num = num_dic[left]
right_num = num_dic[right]
left_len = 0
right_len = 0
for n in range(len(left_num)):
left_len += abs(cur_num[n] - left_num[n])
right_len += abs(cur_num[n] - right_num[n])
if hand == "right":
if left_len >= right_len:
right = num
answer+="R"
else:
left=num
answer+="L"
else:
if left_len > right_len:
right = num
answer+="R"
else:
left=num
answer+="L"
return answer