Algorithm/Programmers
[프로그래머스] 67256 파이썬 - 키패드 누르기
chobbo
2024. 9. 5. 14:02
풀이
키패드의 숫자와 각 숫자에 맞는 좌표를 미리 딕셔너리에 선언해두고 풀었다.
나머지는 단순 구현이었다.
if문을 사용해 조건만 잘 걸어주면 어렵지 않게 풀 수 있는 문제였다.
코드
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 = keypad['*']
right = keypad['#']
for number in numbers:
if number == 1 or number == 4 or number == 7:
answer += 'L'
left = keypad[str(number)]
elif number == 3 or number == 6 or number == 9:
answer += 'R'
right = keypad[str(number)]
else:
leftDistance = abs(left[0]-keypad[str(number)][0])+abs(left[1]-keypad[str(number)][1])
rightDistance = abs(right[0]-keypad[str(number)][0])+abs(right[1]-keypad[str(number)][1])
if leftDistance < rightDistance:
answer += 'L'
left = keypad[str(number)]
elif leftDistance > rightDistance:
answer += 'R'
right = keypad[str(number)]
else:
if hand == "right":
answer += 'R'
right = keypad[str(number)]
else:
answer += 'L'
left = keypad[str(number)]
return answer
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr