キーボードを押す
10321 ワード
質問元:プログラマ
質問の概要
키패드 누르기
- 왼손 엄지는 1,4,7 을 오른손 엄지는 3,6,9 를 누른다.
- 2,5,8,0 은 누를 키패드와 더 위치한 엄지가 누른다.
- 엄지는 상,하,좌,우로만 움직일 수 있으면 한 칸은 거리 1로 계산
- 거리가 같다면 오른손 잡이는 오른엄지, 왼손 잡이는 왼엄지 사용
입력)
numbers = [1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5]
hand = "right"
출력)
result = "LRLLLRLLRRL"
コード#コード#
def solution(numbers, hand):
answer = ''
left = 10
right = 12
for i in numbers:
if i in [1,4,7]:
answer += 'L'
left = i # 왼손 엄지의 위치 바꿈
elif i in [3,6,9]:
answer += 'R'
right = i # 오른손 엄지의 위치 바꿈
else:
i = 11 if i == 0 else i
absL = abs(i-left)
absR = abs(i-right)
# 3을 나눈 몫과 나머지를 더하면 거리가 나옴
if sum(divmod(absL,3)) < sum(divmod(absR,3)):
answer += 'L'
left = i
elif sum(divmod(absL,3)) > sum(divmod(absR,3)):
answer += 'R'
right = i
else:
if hand == 'right':
answer += 'R'
right = i
else:
answer += 'L'
left = i
return answer
solution([1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5], 'right')
'LRLLLRLLRRL'
定義された変数値の決定
# left = 4, i = 8 인 경우
absL = 4
sum(divmod(absL,3))
2
# right = 6, i = 8 인 경우
absR = 2
sum(divmod(absR,3))
2
Reference
この問題について(キーボードを押す), 我々は、より多くの情報をここで見つけました https://velog.io/@wltn39/키패드-누르기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol