๐ฃ ๋ฌธ์ ์ดํด
[1, 4, 7] ์ ๋ฌด์กฐ๊ฑด ์ผ์์ผ๋ก ํฐ์นํ๋ค.
[3, 6, 9] ๋ ๋ฌด์กฐ๊ฑด ์ค๋ฅธ์์ผ๋ก ํฐ์นํ๋ค.
๊ฐ์ด๋ฐ์ ์์นํ [2, 5, 8, 0] ์ ๋ ๊ฐ๊น์ด ๊ณณ์ ์๋ ์๊ฐ๋ฝ์ด ํฐ์นํ๋ค.
๋ฒํธ๋ฅผ ํค(Key) ๊ฐ์ผ๋ก, ํ, ์ด ๋ฒํธ ๋ฆฌ์คํธ๋ฅผ ๊ฐ(Value)์ผ๋ก ํ๋ ๋์ ๋๋ฆฌ๋ฅผ ์ ์ธํด๋๊ณ ,
ํ์ฌ ๋ฒํธ์ ์ ์๊ฐ๋ฝ์ ๊ฑฐ๋ฆฌ ์ฐจ์ด์ ์ ๋๊ฐ์ ๋น๊ตํ์ฌ
๋ ๊ฐ์ด ์์ ์๊ฐ๋ฝ์ด ํฐ์นํ๋ ๊ฒ์ผ๋ก ํ๋ค.
๐ญ ํ์ด ๊ณผ์
์์ฑ ์ธ์ด: Python3
def solution(numbers, hand):
num_dict = {
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],
0: [3, 1]
}
answer = ''
left_thmb = [3, 0]
right_thmb = [3, 2]
for num in numbers:
if num in [1, 4, 7]:
left_thmb = num_dict[num]
answer += 'L'
elif num in [3, 6, 9]:
right_thmb = num_dict[num]
answer += 'R'
else:
left_dist = abs(left_thmb[0] - num_dict[num][0]) + abs(left_thmb[1] - num_dict[num][1])
right_dist = abs(right_thmb[0] - num_dict[num][0]) + abs(right_thmb[1] - num_dict[num][1])
if left_dist < right_dist or (left_dist == right_dist and hand == 'left'):
left_thmb = num_dict[num]
answer += 'L'
elif left_dist > right_dist or (left_dist == right_dist and hand == 'right'):
right_thmb = num_dict[num]
answer += 'R'
return answer
๐ ๋ฐฐ์ด ์
์ด ๋ฌธ์ ๋ ํ๋ก๊ทธ๋๋จธ์ค์์ Level 1์ผ๋ก ๋ถ๋ฅํด๋๋ค.
์นด์นด์ค ์ฝํ ์์๋ ๊ตฌํ ๋ฅ๋ ฅ์ ํฌ์ปค์ฑ์ ๋ ์ฌ์ด ๋ฌธ์ ๋ถํฐ ํ์ดํ๋ ์ ๋ต์ ์๊ฐํด๋ฌ์ผ๊ฒ ๋ค.
(+ ํ์ด์ฌ ์งฑ์งฑ๋งจ๐)
'Problem_Solving' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[2019 KAKAO BLIND RECRUITMENT] ์คํจ์จ (0) | 2020.08.29 |
---|---|
[2018 KAKAO BLIND RECRUITMENT] ๋น๋ฐ์ง๋ (0) | 2020.08.28 |
[BOJ] ๋ฐฑ์ค 1935 ํ์ ํ๊ธฐ์2 / ์คํ(Stack) (0) | 2020.07.27 |
[BOJ] ๋ฐฑ์ค 1918 ํ์ ํ๊ธฐ์ / ์คํ(Stack) (0) | 2020.07.18 |
[BOJ] ๋ฐฑ์ค 10828 ์คํ / ์คํ(Stack) (0) | 2020.07.17 |