반응형
오늘은 어린이날●▼●
난 더이상 어린이가 아니기에 놀지 못하고 코딩을 한다....^^
def solution(numbers, hand):
answer = ''
lastL=10
lastR=12
for n in numbers:
if n in [1,4,7]:
answer+='L'
lastL=n
elif n in [3,6,9]:
answer+='R'
lastR=n
else:
if n==0:
n=11
else:
n
absL=abs(n-lastL)
absR=abs(n-lastR)
if sum(divmod(absL,3))>sum(divmod(absR,3)):
answer+='R'
lastR=n
elif sum(divmod(absR,3))>sum(divmod(absL,3)):
answer+='L'
lastL=n
else:
if hand=='left':
answer+='L'
lastL=n
else:
answer+='R'
lastR=n
return answer
이 문제에서 중요한 점은 *->10, 0->11, #->12으로 치환하는 것이다.
이렇게 치환해야 나눠서 몫과 나머지의 합으로 거리를 계산하는 것을 적용할 수 있다.
여기서 3으로 나누는 이유는 키패드 배열이 3열으로 구성되어 있기 때문에 위아래 거리차이가 3이기 때문이다.
반응형
'알고리즘 > 카카오 기출문제' 카테고리의 다른 글
[파이썬🐍] 프로그래머스 : [1차] 다트 게임 (0) | 2021.05.07 |
---|---|
[파이썬🐍] 프로그래머스 : [1차] 비밀지도 (0) | 2021.05.07 |
[파이썬🐍] 프로그래머스 : 실패율 (0) | 2021.04.22 |
[파이썬🐍] 프로그래머스 : 신규 아이디 추천 (0) | 2021.04.18 |
[파이썬🐍] 프로그래머스 : 튜플 (0) | 2021.04.16 |
댓글