좌표로 번호판을 생각한다는게 어려웠다. 무엇보다 꼼꼼히 구현을 해야하는 문제
def solution(numbers, hand):
answer = ''
dic = {1: [0,0], 2:[0,1], 3:[0,2], 4:[1,0], 5:[1,1], 6:[1,2],7:[2,0],8:[2,1],9:[2,2],\
'*':[3,0],0:[3,1],'#':[3,2]} #좌표별로 나누기
left_n = dic['*'] #왼손 시작
right_n = dic['#'] #오른손 시작
for i in numbers:
now = dic[i] #가고자 하는 위치
if i ==1 or i==4 or i == 7:
answer+='L'
left_n =now #무조건 왼손
elif i ==3 or i == 6 or i == 9:
answer+= "R"
right_n= now #무조건 오른손
else: #가운데
left_d = 0 #거리는 0으로 초기화
right_d =0
# print("left_n, right_n", left_n,right_n)
for a, b, c, in zip(left_n,right_n,now): #거리 계산
left_d +=abs(a-c)
right_d +=abs(b-c)
# print(i, a,b,c)
if left_d<right_d: #왼쪽이 더 가까우면
answer+= "L"
left_n=now
print(i, "left_n", left_n)
elif right_d<left_d: #오른쪽이 더 가까우면
answer+= "R"
right_n = now
else: #거리가 같으면
if hand == "left":
answer+= "L"
left_n = now
elif hand == "right":
answer+= "R"
right_n = now
return answer
'프로그래머스 풀이' 카테고리의 다른 글
프로그래머스 없는 숫자 더하기 (0) | 2022.02.11 |
---|---|
프로그래머스 크레인 인형뽑기 게임(파이썬) (0) | 2022.02.10 |
프로그래머스 신규아이디 추천(파이썬) (0) | 2022.02.10 |
프로그래머스 소수찾기(파이썬) (0) | 2022.02.10 |
프로그래머스 체육복(파이썬) (0) | 2022.02.10 |