๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป ๊ฐ“์ƒ ์ง์žฅ์ธ ๋‚จ๋ฐ”์˜ค
article thumbnail

https://school.programmers.co.kr/learn/courses/30/lessons/67256

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

 

๋ฌธ์ œ ํ•ด๊ฒฐ

์™ผ์ชฝ ์˜ค๋ฅธ์ชฝ answer๋ฅผ ์ž…๋ ฅํ•˜๋Š” ๋ถ€๋ถ„์€ ๋งค์šฐ ์‰ฌ์šด ๋‚ด์šฉ์ด๊ณ  2,5,8,0 ์ผ ๋•Œ ๊ฑฐ๋ฆฌ ๊ณ„์‚ฐ๋งŒ ํ•ด์ฃผ๋ฉด ๋˜๋Š” ๋ฌธ์ œ์˜€๋‹ค.

ํ•ธ๋“œํฐ ํ‚คํŒจ๋“œ๋ฅผ x,y๋กœ ๋‚˜ํƒ€๋‚ธ ํ›„์— ํ˜„์žฌ left์™€ right ์œ„์น˜๋ฅผ ์ €์žฅํ•ด์ค€ ๋‹ค์Œ num๊ณผ ๊ฑฐ๋ฆฌ ๊ณ„์‚ฐ์„ ํ•ด์ฃผ์—ˆ๋‹ค.

์—ฌ๊ธฐ์„œ ์˜ˆ์™ธ๋Š” ๊ฑฐ๋ฆฌ๊ฐ€ ๊ฐ™์„ ๊ฒฝ์šฐ -> ์–ด๋А ์†์žก์ด์ธ์ง€ ํ™•์ธํ•œ ํ›„์— ์ €์žฅํ•ด์ฃผ๋ฉด ๋˜๋Š” ๋ฌธ์ œ !

์ฝ”๋“œ

def solution(numbers, hand):
    answer = ''
    
    keypad = {'1':(0,0), '2':(0,1), '3':(0,2),
           '4':(1,0), '5':(1,1), '6':(1,2),
           '7':(2,0), '8':(2,1), '9':(2,2),
           '*':(3,0), '0':(3,1), '#':(3,2)
        }
    
    left = keypad['*'] 
    right = keypad['#']
        
    for num in numbers:
        if num in [1,4,7]:
            answer += 'L'
            left = keypad[str(num)]
            
        elif num in [3,6,9]:
            answer += 'R'
            right = keypad[str(num)]
            
        else:
            l_distance = abs(left[0] - keypad[str(num)][0]) + abs(left[1] - keypad[str(num)][1])
            r_distance = abs(right[0] - keypad[str(num)][0]) + abs(right[1] - keypad[str(num)][1])
            
            if l_distance < r_distance :
                answer += 'L'
                left = keypad[str(num)]
            
            elif l_distance > r_distance :
                answer += 'R'
                right = keypad[str(num)]
            
            else :
                if hand == 'right' :
                    answer += 'R'
                    right = keypad[str(num)]
                else :
                    answer += 'L'
                    left = keypad[str(num)]
            
    return answer
profile

๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป ๊ฐ“์ƒ ์ง์žฅ์ธ ๋‚จ๋ฐ”์˜ค

@๋‚จ๋ฐ”์˜ค