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
'Coding' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Programmers] ์ ๊ท ์์ด๋ ์ถ์ฒ (0) | 2023.04.12 |
---|---|
[Programmers] ํฌ๋ ์ธ ์ธํ๋ฝ๊ธฐ ๊ฒ์ (0) | 2023.04.11 |
[BOJ] 17143๋ฒ: ๋์์ (0) | 2023.03.18 |
[Programmers] ๋ก๋์ ์ต๊ณ ์์์ ์ต์ ์์ (0) | 2023.03.16 |
[Programmers] ๋คํธ ๊ฒ์ (0) | 2023.03.15 |