프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
내 코드
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)
}
curr_left = keypad['*']
curr_right = keypad['#']
for number in numbers:
if number in [1, 4, 7]:
curr_left = keypad[number]
answer += 'L'
elif number in [3, 6, 9]:
curr_right = keypad[number]
answer += 'R'
else:
curr = keypad[number]
left_dist = abs(curr[0] - curr_left[0]) + abs(curr[1] - curr_left[1])
right_dist = abs(curr[0] - curr_right[0]) + abs(curr[1] - curr_right[1])
if right_dist > left_dist:
curr_left = keypad[number]
answer += 'L'
elif right_dist < left_dist:
curr_right = keypad[number]
answer += 'R'
elif right_dist == left_dist:
if hand == 'left':
curr_left = keypad[number]
answer += 'L'
elif hand == 'right':
curr_right = keypad[number]
answer += 'R'
return answer
반응형
'ALGORITHM' 카테고리의 다른 글
프로그래머스 | PCCP 기출 문제 1번 | 동영상 재생기 (Python) (1) | 2024.10.10 |
---|---|
프로그래머스 | 네트워크 (Python) (1) | 2024.10.01 |
프로그래머스 | 스킬트리 (Python) (0) | 2024.10.01 |
프로그래머스 | 타겟 넘버 (Python) (0) | 2024.10.01 |
어서와! 자료구조와 알고리즘은 처음이지? | 6강, 7강, 8강 (0) | 2024.09.30 |