키패드 누르기

알고리즘 일기장 · 2022. 1. 4. 01:05

프로그래머스 링크 : 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):
    left, right = [1,4,7], [3,6,9]
    tl, tr = 10, 12
    answer = []
    
    for i in numbers:
        if i in left:
            answer.append("L")
            tl = i
        elif i in right:
            answer.append("R")
            tr = i
        else:
            i = 11 if i == 0 else i  
            
            abs_l, abs_r = abs(i-tl), abs(i-tr)
            
            if sum(divmod(abs_l, 3)) > sum(divmod(abs_r, 3)):
                answer.append('R')
                tr = i
            elif sum(divmod(abs_l, 3)) < sum(divmod(abs_r, 3)):
                answer.append('L')
                tl = i
            else:
                if hand == 'left':
                    answer.append('L')
                    tl = i
                else:
                    answer.append('R')
                    tr = i
                
    return "".join(i for i in answer)

'알고리즘 일기장' 카테고리의 다른 글

숫자 문자열과 영단어  (0) 2021.12.30
신규 아이디 추천  (0) 2021.12.29
로또의 최고 순위와 최저 순위  (0) 2021.12.29