티스토리 뷰
programmers.co.kr/learn/courses/30/lessons/67256
코딩테스트 연습 - 키패드 누르기
[1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL"
programmers.co.kr
def solution(numbers, hand):
answer = ''
keypad = [[1, 4, 7, '*'], [2, 5, 8, 0], [3, 6, 9, '#']]
pl = [0, 3]
pr = [2, 3]
for num in numbers:
if num in keypad[0]:
answer += 'L'
pl = [0, keypad[0].index(num)]
elif num in keypad[2]:
answer += 'R'
pr = [2, keypad[2].index(num)]
else:
idx = keypad[1].index(num)
l = abs(pl[0] - 1) + abs(pl[1] - idx)
r = abs(pr[0] - 1) + abs(pr[1] - idx)
if l == r:
if hand == 'right':
answer += 'R'
pr = [1, idx]
else:
answer += 'L'
pl = [1, idx]
elif l > r:
answer += 'R'
pr = [1, idx]
else:
answer += 'L'
pl = [1, idx]
return answer
'Algorithm > Programmers' 카테고리의 다른 글
[프로그래머스] 다음 큰 숫자 - Python (0) | 2021.04.11 |
---|---|
[프로그래머스] 땅따먹기 - Python (0) | 2021.04.01 |
[프로그래머스] 더 맵게 - Python (0) | 2021.03.30 |
[프로그래머스] 실패율 - Python (0) | 2021.03.28 |
[프로그래머스] 오픈채팅방 - Python (0) | 2021.03.27 |