-
Notifications
You must be signed in to change notification settings - Fork 0
/
keypad.py
61 lines (50 loc) · 1.5 KB
/
keypad.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
from collections import deque
def solution(numbers, hand):
answer = ''
ans_list = []
lh_cur = 10
rh_cur = 12
num = 0
numbers = deque(numbers)
while numbers:
num = numbers.popleft()
if(num%3==1): #1,4,7
lh_cur = num
ans_list.append('L')
elif(num%3==0 and num!=0): #3,6,9
rh_cur = num
ans_list.append('R')
else: #2,5,8,0
if(calc_distance(rh_cur,num)>calc_distance(lh_cur,num)):
lh_cur = num
ans_list.append('L')
elif(calc_distance(rh_cur,num)<calc_distance(lh_cur,num)):
rh_cur = num
ans_list.append('R')
else:#same distance cost
if(hand=="left"):
lh_cur = num
ans_list.append('L')
else :
rh_cur = num
ans_list.append('R')
answer = ''.join(ans_list)
return answer
def calc_distance(cur, target):
count = 0
calc_val = 0
if(cur==0):
cur=11
if(target==0):
target=11
if(cur >= target):
calc_val = cur - target
else :
calc_val = target - cur
while calc_val%3!=0:
count+=1
calc_val-=1
count+=calc_val//3
return count
#https://programmers.co.kr/learn/courses/30/lessons/67256
#카카오 2020 인턴십 테스트 : https://tech.kakao.com/2020/07/01/2020-internship-test/