2024년 1월 19일 알고리즘 문제풀이 문제 키패드 누르기 난이도 Lv.1
코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 def solution(numbers, hand): arr = [0 for _ in range(len(numbers))] position = [[3,1],[0,0],[0,1],[0,2],[1,0],[1,1],[1,2],[2,0],[2,1],[2,2],[3,0],False,[3,2]] finger = [10,12] left = [1,4,7] right = [3,6,9] for i in range(len(numbers)): num = numbers[i] if num in left: arr[i] = 'L' finger[0] = num elif num in right: arr[i] = 'R' finger[1] = num else: number_position = position[num] left_finger = position[finger[0]] right_finger = position[finger[1]] distance_left = abs(number_position[0]-left_finger[0]) + abs(number_position[1]-left_finger[1]) distance_right = abs(number_position[0]-right_finger[0]) + abs(number_position[1]-right_finger[1]) if distance_left < distance_right: arr[i] = 'L' finger[0] = num elif distance_left > distance_right: arr[i] = 'R' finger[1] = num else: if hand == 'left': arr[i] = 'L' finger[0] = num else: arr[i] = 'R' finger[1] = num answer = "".join(arr) return answer 각 번호간의 거리를 어떻게 처리할지 고민하다가 키패드를 좌표라고 생각하고 각 숫자의 위치를 값으로 갖는 배열 position을 만들었다.
...