https://programmers.co.kr/learn/courses/30/lessons/67256
์ฝ๋ฉํ ์คํธ ์ฐ์ต - ํคํจ๋ ๋๋ฅด๊ธฐ
[1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL"
programmers.co.kr
pad_map = { 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]
}
# ์ผ์๊ณผ ์ค๋ฅธ์์ด ๋๋ฌ์ผํ ์ซ์์ค ๊ฐ์ฅ ๊ฐ๊น์ด ๊ณณ ์ฐพ๊ธฐ
def getOffset(L, R, number, hand):
targetPos = pad_map[number]
leftPos = pad_map[L]
rightPos = pad_map[R]
leftDistance = abs( targetPos[0] - leftPos[0] ) + abs( targetPos[1] - leftPos[1] )
rightDistance = abs( targetPos[0] - rightPos[0] ) + abs( targetPos[1] - rightPos[1] )
if leftDistance < rightDistance:
return "L"
elif leftDistance > rightDistance:
return "R"
elif leftDistance == rightDistance:
return hand
def solution(numbers, hand):
answer = ''
LeftSide = [1, 4, 7]
RightSide = [3, 6, 9]
middle = [2, 5, 8, 0]
curLeft = '*'
curRight = '#'
if hand == 'right':
hand = 'R'
else:
hand = 'L'
for number in numbers:
if number in LeftSide:
answer += 'L'
curLeft = number
elif number in RightSide:
answer += 'R'
curRight = number
elif number in middle:
if getOffset(curLeft, curRight, number, hand) == 'L':
curLeft = number
answer += 'L'
elif getOffset(curLeft, curRight, number, hand) == 'R':
curRight = number
answer += 'R'
return answer
ํต์ฌ ์ฝ๋์ ๋๋ค.
pad_map = { 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]
}
leftDistance = abs( targetPos[0] - leftPos[0] ) + abs( targetPos[1] - leftPos[1] )
rightDistance = abs( targetPos[0] - rightPos[0] ) + abs( targetPos[1] - rightPos[1] )
pad_map์ด๋ผ๋ ๊ฐ ์ซ์๋ง๋ค์ ์์น ๋ฐฐ์ด์ ์ ์ธํ๊ณ ,
๋๋ฌ์ผ ํ ์ซ์์ ์์น์ ๊ฐ ์๊ฐ๋ฝ์ ์์น๋ผ๋ฆฌ ๋บ์ ์ ํ๋๋ฐ, ์ด๋ ๋์ค๋ ์์๋ abs ํจ์๋ฅผ ์ด์ฉํด ์ ๋ ๊ฐ์ผ๋ก ๋ฐํ์ ํ์ฌ ์๊ฐ๋ฝ์ด ๋๋ฌ์ผ ํ ์ซ์์์ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ์ต๋๋ค.
ํ๋ฉด์ ๋๋ ์ ,
๋ฌด์ง์ฑ์ผ๋ก ์ฝ๋๋ฅผ ์ง๊ธฐ ์ด์ ์ ๋ฉ๋ชจ์ฅ์ด๋ ๊ทธ๋ฆผํ์ ์ผ์, ์ ๋ต์ ๋์ถํ๊ธฐ ์ํด์ ์ด๋ค ๋ฉ์ปค๋์ฆ๊ณผ ํจํด์ด ์๋์ง๋ฅผ ๋จผ์ ์ ์ด๊ฐ๋ฉด์ ์ฝ๋๋ก๋ ์ด๋ป๊ฒ ๊ตฌํ์ ํ ์ง๋ฅผ ์๊ฐ์ ํด์, ๊ทธ๋ค์์ ์ฝ๋๋ก ์ง๋ณด๋ ๊ฒ์ด ์ค์ํ๋ค.
๊ฑ ๋ฉ๋ชจํ๋ฉด์ ํจํด์ ์ฐพ์๋ด๋ผ ์ด๋ง์ด์ผ~
'๐๊ณต๋ถ > ์ฝ๋ฉํ ์คํธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค - ์์ฃผํ์ง ๋ชปํ ์ ์, ํ์ด์ฌ (0) | 2021.12.08 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค - ์ซ์ ๋ฌธ์์ด๊ณผ ์๋จ์ด, ํ์ด์ฌ (0) | 2021.12.07 |
๋ฐฑ์ค - ์์ ๊ตฌํ๊ธฐ, ํ์ด์ฌ (0) | 2021.12.06 |
๋ฐฑ์ค - ์์ธ์๋ถํด, ํ์ด์ฌ (0) | 2021.12.05 |
๋ฐฑ์ค - N๊ณผ M (1), ํ์ด์ฌ (0) | 2021.12.05 |