https://programmers.co.kr/learn/courses/30/lessons/67256
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_s=dic['*']
right_s=dic['#']
for i in numbers:
now = dic[i]
if i in [1, 4, 7]:
answer +="L"
left_s=now
elif i in [3, 6, 9]:
answer += 'R'
right_s=now
else:
left_d = 0
right_d = 0
for a, b, c in zip(left_s, right_s, now):
left_d+=abs(a-c)
right_d+=abs(b-c)
if left_d < right_d:
answer += 'L'
left_s=now
elif left_d > right_d:
answer += 'R'
right_s=now
else:
if hand=='left':
answer+='L'
left_s=now
else:
answer += 'R'
right_s=now
return answer
zip
: 여러 개의 iterable자료형이 개수가 동일할 때 묶어주는 역할num = [1, 2, 3]
fruit = ['apple', 'banana', 'orange']
color = ['red', 'yellow', 'orange']
zip_list = zip(num, fruit, color)
print(list(zip_list))
>>> [(1, 'apple', 'red'), (2, 'banana', 'yellow'), (3, 'orange', 'orange')]
for문에서의 사용
1)
for x, y in zip(range(10), range(10)):
print(x, y)
출력
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
2)
for number, upper, lower in zip("12345", "ABCDE", "abcde"):
print(number, upper, lower)
출력
1 A a
2 B b
3 C c
4 D d
5 E e