728x90
320x100
def solution(numbers, hand):
# 키패드 위치
keyPad = { "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 = keyPad["*"]
right = keyPad["#"]
answer = ''
for i in numbers:
if i in [1, 4, 7]:
answer += "L"
left = keyPad[str(i)]
elif i in [3, 6, 9]:
answer += "R"
right = keyPad[str(i)]
elif i in [2, 5, 8, 0]:
leftDis = abs(left[0] - keyPad[str(i)][0]) + abs(left[1] - keyPad[str(i)][1])
rightDis = abs(right[0] - keyPad[str(i)][0]) + abs(right[1] - keyPad[str(i)][1])
if rightDis > leftDis:
answer += "L"
left = keyPad[str(i)]
elif rightDis < leftDis:
answer += "R"
right = keyPad[str(i)]
else :
if hand =="left":
answer += "L"
left = keyPad[str(i)]
else:
answer += "R"
right = keyPad[str(i)]
return answer
눌러야 하는 키패드가 2, 5, 8, 0일 때 현재 손 위치에서 더 가까운 손으로 눌러야 해서 그 부분을 계산하는게 어려웠다.
728x90
320x100
'💻 하나씩 차곡차곡 > 프로그래머스 (Python)' 카테고리의 다른 글
[프로그래머스/python/Lv1] [PCCE 기출문제] 9번 이웃한 칸 (0) | 2023.12.29 |
---|---|
[프로그래머스/python/Lv1] 신규 아이디 추천 (0) | 2023.12.28 |
[프로그래머스/python/Lv1] 크레인 인형뽑기 (0) | 2023.12.26 |
[프로그래머스/python/Lv1] [1차] 다트 게임 (2) | 2023.12.25 |
[프로그래머스/python/Lv1] 다트 게임 (1) | 2023.12.24 |