# ๋์ค์ ๊ฑฐ๋ฆฌ ๊ตฌํ ๋ ์ฌ์ฉํ ํจ์
def diff(a, b):
return abs(a[0] - b[0]) + abs(a[1] - b[1])
def solution(numbers, hand):
answer = ''
# ์ผ์๊ณผ ์ค๋ฅธ์์ ์ด๊ธฐ ์์น
left, right = [3, 0], [3, 2]
# ํคํจ๋ 0๋ฒ๋ถํฐ 9๋ฒ๊น์ง์ ์์น ์ ๋ณด
key_map = [[3, 1], [0, 0], [0, 1], [0, 2], [1, 0],
[1, 1], [1, 2], [2, 0], [2, 1], [2, 2]]
for number in numbers:
# ๋๋ฌ์ผ ํ๋ ๋ฒํธ์ ์์น ์ ๋ณด
key = key_map[number]
# ์ผ์ชฝ ์ค๊ณผ ์ค๋ฅธ์ชฝ ์ค์ ๋น๊ตํ ๊ฒ ์์ด ์ผ์ ์ค๋ฅธ์์ ํ ๋น
if number in [1, 4, 7]:
answer += "L"
left = key
elif number in [3, 6, 9]:
answer += "R"
right = key
# ๊ฐ์ ๊ฒฝ์ฐ ๊ฐ๊น์ด ์์ ๊ตฌํด์ ํ ๋น
else:
resource_l = diff(left, key)
resource_r = diff(right, key)
if resource_l > resource_r:
answer += "R"
right = key
elif resource_r > resource_l:
answer += "L"
left = key
# ๊ฑฐ๋ฆฌ๊น์ง๋ ๊ฐ์ ๊ฒฝ์ฐ์๋ ์ด๋์ชฝ ์์ก์ด์ธ์ง์ ๋ฐ๋ผ ํ ๋น
else:
if hand == "right":
answer += "R"
right = key
else:
answer += "L"
left = key
return answer