티스토리 뷰

문제 링크

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제 풀이

def findCoordinate(keynum):
    keypad = [[1,2,3],[4,5,6],[7,8,9],['*', 0, '#']]
    return [[i,j] for i in range(4) for j in range(3) if keypad[i][j]==keynum][0]

def calDistance(a, b):
    return sum([abs(findCoordinate(a)[i]-findCoordinate(b)[i]) for i in [0,1]])

def solution(numbers, hand):
    left_location = '*'
    right_location = '#'
    answer = ''
    for num in numbers:
        if num in [1, 4, 7]:
            answer += 'L'
            left_location = num
        elif num in [3, 6, 9]:
            answer += 'R'
            right_location = num
        else:
            if calDistance(left_location, num) < calDistance(right_location, num):
                answer += 'L'
                left_location = num
            elif  calDistance(left_location, num) > calDistance(right_location, num):
                answer += 'R'
                right_location = num
            else:
                if hand == 'left':
                    answer += 'L'
                    left_location = num
                elif hand == 'right':
                    answer += 'R'
                    right_location = num
    return answer

키패드 누르기 입출력 테스트

*key point: 특정 키패드의 좌표를 탐색하는 함수, 두 키패드의 거리를 측정하는 함수를 만들어 활용한다. 

 
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
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
글 보관함