[프로그래머스 코테 연습] 키패드 누르기

Gorae·2021년 6월 13일
0

알고리즘

목록 보기
11/19
post-thumbnail

abs() 사용 풀이

def solution(numbers, hand):
    answer = ''
    location = [[3, 1], [0, 0], [0, 1], [0, 2], [1, 0], [1, 1], [1, 2], [2, 0], [2, 1], [2, 2]]
    
    left, right = [3, 0], [3, 2]

    for i in numbers:
        if i % 3 == 1:
            answer += 'L'
            left = location[i]
        elif i % 3 == 0 and i != 0:
            answer += 'R'
            right = location[i]
        else:
            l = abs(location[i][0] - left[0]) + abs(location[i][1] - left[1])
            r = abs(location[i][0] - right[0]) + abs(location[i][1] - right[1])
            if l < r:
                answer += 'L'
                left = location[i]
            elif l > r:
                answer += 'R'
                right = location[i]
            else:
                if hand == 'right':
                    answer += ‘R’
                    right = location[i]
                else:
                    answer += ‘L’
                    left = location[i]                

    return answer

느낀점

  • abs() 함수가 절댓값을 반환한다는 것을 알았다.
  • 위치 자체를 배열로 만들어서 각 번호를 인덱스 값으로 둔다는 아이디어에 놀랐다. 이런 생각을 잘 할 수 있었으면.
profile
좋은 개발자, 좋은 사람

0개의 댓글