honey_pot

[python] 키패드 누르기 본문

문제 풀이

[python] 키패드 누르기

_tera_ 2021. 9. 2. 01:15

 

 

코드

 

def solution(numbers, hand):
    
    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]}
    res = ''
    l_now = dic['*']
    r_now = dic['#']

    l = [1, 4, 7]
    r = [3, 6, 9]
    mid = [2, 5, 8, 0]

    for i in numbers:
        if i in l:
            res += 'L'
            l_now = dic[i]
        elif i in r:
            res += 'R'
            r_now = dic[i]
        elif i in mid:
            l_d=0
            r_d=0
            for a,b,c in zip(l_now, r_now, dic[i]):
                l_d += abs(a-c)
                r_d += abs(b-c)
            if l_d < r_d:
                res += 'L'
                l_now = dic[i]
            elif l_d > r_d:
                res += 'R'
                r_now = dic[i]
            else:
                if hand == 'left':
                    res += 'L'
                    l_now = dic[i]
                else:
                    res += 'R'
                    r_now = dic[i]
                
    return res

좌표로 만들어서 풀어보고 싶어서 if문 부분을 다 정리하고 나서 좌표를 넣고 출력하는데 계속 오답이어서 결국 다른 풀이를 찾아봄

l_d += abs(a-c)
r_d += abs(b-c)

 

디버깅해보니 이 부분에서 +=가 아닌 =로 풀었더니  거리가 0 아니면 1로 나와서 계속 손 따라 RL이 저장돼서였다 

'문제 풀이' 카테고리의 다른 글

[python] 비밀지도  (0) 2021.09.09
[python] 폰켓몬  (0) 2021.09.08
[python] 숫자 문자열과 영단어  (0) 2021.09.01
[python] 실패율  (0) 2021.08.30
[python] 모의고사  (0) 2021.08.30
Comments