์ฝ๋
def keypad(current_N,next_N):
dic = {'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]}
x1,y1 = dic[current_N]
x2,y2 = dic[next_N]
return abs(int(x1) - int(x2)) + abs(int(y1) - int(y2))
def solution(numbers,hand):
ans = ''
left = '*'
right = '#'
for i in numbers:
if i in [1,4,7]:
left = str(i)
ans += 'L'
elif i in [3,6,9]:
right = str(i)
ans += 'R'
else:
if keypad(left,str(i)) > keypad(right,str(i)):
right = str(i)
ans += 'R'
elif keypad(left,str(i)) < keypad(right,str(i)):
left = str(i)
ans += 'L'
else:
if hand == 'left':
left = str(i)
ans += 'L'
else:
right = str(i)
ans += 'R'
return ans
๋ถ์ > ์ฒ์์ผ๋ก ๋ ๊ฐ์ ํจ์๋ฅผ ์ด์ฉํด ์ฝ๋๋ฅผ ์ง๋ดค๋ค. ์ด ๋ฌธ์ ์์์ ๋์ ๋ ์ด๋ป๊ฒ ํคํจ๋ ์ฌ์ด์ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ๋์๋ค. ๊ทธ๋์ ํคํจ๋ ์ฌ์ด์ ๊ฑฐ๋ฆฌ๋ฅผ ์ฐพ๋ ํจ์๋ฅผ ๋ฐ๋ก ๋ง๋ค์๋ค. ํคํจ๋์ ์์น๋ ์ขํ๋ก ๋ง๋ค์ด ํด์๋งต์ value๊ฐ์ผ๋ก ์ง์ ํ์ฌ ํคํจ๋ ์ฌ์ด์ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ์๋ค. ๊ทธ๋ฆฌ๊ณ ๋๋จธ์ง ์กฐ๊ฑด์ ๋ฌธ์ ์ ๋์จ๋๋ก ๊ทธ๋๋ก ๊ตฌํํ๋ฉด ๋๋ ๋ฌธ์ ์๋ค.
'Algorithm > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Programmers] ๊ตฌ๋ช ๋ณดํธ (0) | 2022.05.19 |
---|---|
[Programmers] ์์ ์ฐพ๊ธฐ (0) | 2022.05.19 |
[Programmers] ์์ฅ (0) | 2022.05.18 |
[Programmers] K๋ฒ์งธ ์ (0) | 2022.05.07 |
[Programmers] ์คํจ์จ (0) | 2022.05.07 |