[코딩테스트] 카카오 인턴 키패드 누르기 (프로그래머스)

naring·2023년 5월 31일
0
def solution(numbers, hand):
    leftnow = '*'
    rightnow = '#'
    answer = ''
    def calclen(now, number) :
    # 나는 그냥 숫자로 계산했지만, dict 자료형을 활용해 각 숫자를 좌표로 바꾸어 계산할 수 있다!
    #    dic = {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]}
        if number == 0 :
            number = 11
        if now == 0 :
            now = 11
        if now == '*' :
            now = 10
        if now == '#' :
            now = 12

        initalLen = abs(now-number)
        col = initalLen //3

        row = initalLen % 3
        calcedLen = col + row

        return calcedLen
    

    for number in numbers :
        if (number == 1 or number ==  4 or number==  7):
        #얘를 if number in [1,4,7]이렇게 바꿀 수 있다
            answer += 'L' 
            leftnow = number

        elif (number == 3 or number ==  6 or number== 9):
            answer += 'R'
            rightnow = number
        else :
            leftlen = calclen(leftnow, number)
            rightlen = calclen(rightnow, number)
            if leftlen < rightlen :
                answer += 'L'
                leftnow = number
            elif leftlen > rightlen :
                answer += 'R'
                rightnow = number
            else :
                if hand == 'right' :
                    answer += ('R')
                    rightnow = number
                else :
                    answer += ('L')
                    leftnow = number
            
    
    
    return answer
profile
개발은 즐거워

0개의 댓글