Algorithm
[카카오 코테 2020 | python] 키패드 누르기
삐롱K
2025. 7. 4. 15:50
728x90
반응형
- 문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/67256
- 2020 카카오 인턴십
Q1) 문제를 어떻게 이해했나요?
A1)
Q2) 문제를 어떻게 풀 예정인가요?
A2) 각 숫자를 키패드의 좌표 (x, y)로 나타내고, 현재 왼손/오른손 위치에서 거리를 계산해서 규칙에 따라 손가락을 정하면 됩니다.
def solution(numbers, hand):
pos = {
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 = pos['*']
right = pos['#']
answer = ""
for num in numbers:
if num in [1, 4, 7]:
answer += "L"
left = pos[num]
elif num in [3, 6, 9]:
answer += "R"
right = pos[num]
else:
l_dist = abs(left[0] - pos[num][0]) + abs(left[1] - pos[num][1])
r_dist = abs(right[0] - pos[num][0]) + abs(right[1] - pos[num][1])
if l_dist < r_dist:
answer += "L"
left = pos[num]
elif r_dist < l_dist:
answer += "R"
right = pos[num]
else:
if hand == "right":
answer += "R"
right = pos[num]
else:
answer += "L"
left = pos[num]
return answer
728x90
반응형