programmers - 키패드 누르기
resilient
·2021. 4. 21. 20:15
728x90
반응형
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 distance(x,y):
return abs(x[0]-y[0])+abs(x[1]-y[1])
#거리구하는 함수
def solution(numbers, hand):
answer = ''
keypad = {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 = '*'
right = '#'
for i in numbers:
if i in [1,4,7]:
answer+='L'
left = i
elif i in [3,6,9]:
answer+='R'
right = i
elif i in [2,5,8,0]:
if distance(keypad[left],keypad[i]) < distance(keypad[right],keypad[i]):
answer+='L'
left = i
elif distance(keypad[right],keypad[i]) < distance(keypad[left],keypad[i]):
answer+='R'
right = i
else:
if hand == "right":
answer+='R'
right = i
else:
answer+='L'
left = i
return answer
반응형
'자료구조 & 알고리즘 > 프로그래머스(programmers)' 카테고리의 다른 글
programmers - 소수 만들기 (0) | 2021.05.05 |
---|---|
programmers - 소수찾기 (0) | 2021.04.23 |
programmers -모의고사 (0) | 2021.04.19 |
programmers - 문자열내 p와y의 개수 (0) | 2020.07.25 |
Programmers - 약수의 합 (0) | 2020.07.23 |