[Lv1] 키패드 누르기

이말감·2022년 7월 25일
0

Programmers

목록 보기
15/32

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

문제

링크

풀이

def solution(numbers, hand):
    answer = ''
    left, right = [3, 0], [3, 2]
    phone = [[3, 1]]
    for i in range(3) :
        for j in range(3) :
            phone.append([i, j])
    for n in numbers :
        letter = ''
        if n not in [2, 5, 8, 0] :
            letter = 'L' if n in [1, 4, 7] else 'R'
        else :
            tmp_l = abs(phone[n][0] - left[0]) + abs(phone[n][1] - left[1])
            tmp_r = abs(phone[n][0] - right[0]) + abs(phone[n][1] - right[1])
            if tmp_l == tmp_r :
                letter = hand[0].upper()
            else :
                letter = 'L' if tmp_l < tmp_r else 'R'
        answer += letter
        if letter == 'L' :
            left = phone[n]
        else : 
            right = phone[n]
    return answer

단순한 구현 문제.
조건에 따라 letter에 'L'을 넣을지, 'R'을 넣을지 정하고, 좌표를 계속 바꿔주었다.

profile
전 척척학사지만 말하는 감자에요

0개의 댓글