[ํ๋ก๊ทธ๋๋จธ์ค | Lv1] ํคํจ๋ ๋๋ฅด๊ธฐ (Python) - 2020 ์นด์นด์ค ์ธํด์ญ
https://school.programmers.co.kr/learn/courses/30/lessons/67256
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
ํคํจ๋๋ฅผ ์ขํ๋ก ๋์ ๋๋ฆฌ์ ์ ์ฅํด์ฃผ๊ณ
1) number๊ฐ 1, 4, 7์ด๋ฉด 'L' & ํ์ฌ ์์น ์ ์ฅ
2) number๊ฐ 3, 6, 9์ด๋ฉด 'R' & ํ์ฌ ์์น ์ ์ฅ
3) number๊ฐ 2, 5, 8, 0์ด๋ฉด ํ์ฌ ์ผ์๊ณผ ์ค๋ฅธ์์ ์์น๋ฅผ ๋น๊ตํด์ ๋ ๊ฐ๊น์ด ์์ผ๋ก ์ถ๋ ฅ
ใด ๊ฑฐ๋ฆฌ๊ฐ ๊ฐ์ผ๋ฉด hand์ ๋ฐ๋ผ ์ถ๋ ฅํด์ค๋ค.
# ํ๋ก๊ทธ๋๋จธ์ค 67256: ํคํจ๋ ๋๋ฅด๊ธฐ (2020 ์นด์นด์ค ์ธํด์ญ)
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]}
l = '*'
r = '#'
for i in numbers:
if i == 1 or i == 4 or i == 7:
answer += 'L'
l = i
elif i == 3 or i == 6 or i == 9:
answer += 'R'
r = i
else:
lenL = abs((keypad[i][0] - keypad[l][0])) + abs((keypad[i][1] - keypad[l][1]))
lenR = abs((keypad[i][0] - keypad[r][0])) + abs((keypad[i][1] - keypad[r][1]))
if lenL > lenR:
answer += 'R'
r = i
elif lenL < lenR:
answer += 'L'
l = i
else:
if hand == 'right':
answer += 'R'
r = i
else:
answer += 'L'
l = i
return answer
๋์ ๋๋ฆฌ์ ์ขํ๋ฅผ ์ ์ฅํ๋ค๋ ์์ด๋์ด๋ง ๋ ์ฌ๋ฆฌ๋ฉด ์ฝ๊ฒ ํ ์ ์์ ๊ฒ ๊ฐ๋ค.
๋๋ ์ ๋ ์ฌ๋ผ์ ์กฐ๊ธ ํค๋งธ๋ค ๐ฅฒ