[프로그래머스] 키패드 누르기

yewon Lee·2023년 4월 9일
1


😎코딩테스트 연습>2020 카카오 인턴십>키패드 누르기


📘 문제풀이

  1. 키패드를 배열에 넣기
  2. (1, 4, 7)은 left, (3, 6, 9)는 right
  3. 중간 키패드는 인덱스의 위치를 비교해서 더 가까운 손을 체크
import numpy as np

def solution(numbers, hand):
    answer = ''
    left = 10
    right = 11
    key = np.array([[1,2,3],[4,5,6],[7,8,9],[10,0,11]]) # 10은 *, 11은 #
    for n in numbers:
        if n == 1 or n == 4 or n == 7:
            answer += 'L'
            left = n
        
        elif n == 3 or n== 6 or n == 9:
            answer += 'R'
            right = n
            
        else:
            l = np.where(key == left)
            r = np.where(key == right)
            k = np.where(key == n)
            lkey = abs(l[0]-k[0]) + abs(l[1]-k[1]) 
            rkey = abs(r[0]-k[0]) + abs(r[1]-k[1]) 
            
            if lkey < rkey:
                answer += 'L'
                left = n
                
            elif lkey == rkey:
                
                if hand == 'left':
                    answer += 'L'
                    left = n
                    
                else:
                    answer += 'R'
                    right = n
                    
            else:
                answer += 'R'
                right = n

    return answer
profile
시작

0개의 댓글