bit가 눈 앞에서 왔다갔다

Py) 프로그래머스 67256 키패드 누르기 본문

Algorithm/Prob

Py) 프로그래머스 67256 키패드 누르기

헬린인형 2022. 3. 1. 02:46

https://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 = ''
    left = (3, 0)
    right = (3, 2)
    keypad = [(3,1),
           (0,0), (0,1), (0,2),
           (1,0), (1,1), (1,2),
           (2,0), (2,1), (2,2)
           ]


    for num in numbers:
        if num in [1,4,7]:
            answer += 'L'
            left = keypad[num]
        elif num in [3,6,9]:
            answer += 'R'
            right = keypad[num]
        else:       # 좌표느낌?
            lmove = abs(keypad[num][0]-left[0]) + abs(keypad[num][1]-left[1])
            rmove = abs(keypad[num][0]-right[0]) + abs(keypad[num][1]-right[1])
            if lmove > rmove:
                answer += 'R'
                right = keypad[num]
            elif lmove < rmove:
                answer += 'L'
                left = keypad[num]
            else:
                if hand == 'right':
                    answer += 'R'
                    right = keypad[num]
                else:
                    answer += 'L'
                    left = keypad[num]

    return answer


print(solution([1, 2, 3, 4, 5, 6, 7, 8, 9, 0], "right"))

 

*

튜플을 사용해서 좌표값(?) 느낌으로 위치 표시하는 아이디어

 

반응형
Comments