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 |
뚜루리님의
글이 좋았다면 응원을 보내주세요!
이 글이 도움이 됐다면, 응원 댓글을 써보세요. 블로거에게 지급되는 응원금은 새로운 창작의 큰 힘이 됩니다.
응원 댓글은 만 14세 이상 카카오계정 이용자라면 누구나 편하게 작성, 결제할 수 있습니다.
글 본문, 댓글 목록 등을 통해 응원한 팬과 응원 댓글, 응원금을 강조해 보여줍니다.
응원금은 앱에서는 인앱결제, 웹에서는 카카오페이 및 신용카드로 결제할 수 있습니다.