๋ฐ์ํ
๋ฌธ์ ๋งํฌ
https://programmers.co.kr/learn/courses/30/lessons/6725
๋์ ํ์ด
- ์ซ์๋ฅผ ์ขํ๋ก ๋ง๋ค์ด์๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ๋ค๋๊ฑธ ๋๋ฌด๋ฆ๊ฒ ์๊ฐํด๋
- ์ด๊ฑฐ ์๊ฐ๋ง ํด๋ด๋ฉด just ๊ตฌํ์ผ๋ก ๊ฐ๋จํ๊ฒ ํด๊ฒฐ ๊ฐ๋ฅํ ๋ฌธ์
- ์์ผ๋ก ์ผ์ ํ ํํ, ๋ณํ๊ฐ ์๋ ๊ณ ์ ๋ ์๋ฆฌ?๋ฅผ ์ด์ฉํ๋ ๋ฌธ์ ๋ ์์ฌํ์ง๋ง๊ณ ์ขํ๋ฅผ ์ด์ฉํ์
- ๋จผ์ ํคํจ๋๋ฅผ ๋์ ๋๋ฆฌํํ๋ก key๊ฐ์์ซ์, value๊ฐ์ ์ขํ์ ์์น๋ก ํํ
- ํ์ฌ ์์ ์์น (left now, right now)๋ฅผ ์ ํด์ฃผ๊ณ
- 1,4,7์ด ๋์ค๋ฉด ์ฌ์ง์์ด Left ๊ณ , 3, 6, 9๊ฐ ๋์ค๋ฉด ์ฌ์ง์์ด Right๋๊น if๋ฌธ์ผ๋ก๊ตฌํ
- 2, 5, 8, 0์ด ๋์ค๋ฉด ์์ ์์น์ ๋ฐ๋ผ์ Left / Right๋ฅผ ์ ํด์ฃผ์ด์ผ ํ๊ธฐ๋๋ฌธ์ ์ขํ์ ์์น๋ฅผ ํ์ฉํด์ ๋งจํํ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ๋ค, ๋ ๊ฐ๊น์ด ์์ ์ง์
- for๋ฌธ์ด ๋์๊ฐ ๋๋ง๋ค now์ ์์น๋ฅผ ๋ฐ๊พธ์ด์ฃผ๋ฉด์ ์ฝ๋ ์งํ
def solution(numbers, hand):
answer = ""
# ํคํจ๋ ์ซ์๋ฅผ ์ขํ๋ก ํํ
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],
10:[3,0], 0:[3,1], 11:[3,2]}
left_now = dic[10] #ํ์ฌ ์ผ์ ์์น (10์*)
right_now = dic[11] #ํ์ฌ ์ค๋ฅธ์ ์์น (11๋ #)
for num in numbers:
if num in [1, 4, 7]:
answer += "L"
left_now = dic[num]
elif num in [3, 6, 9]:
answer += "R"
right_now = dic[num]
else:
now = dic[num]
# ๊ทธ๋ํ๋๊น ๊ทธ๋ฅ ๋งจํํ๊ฑฐ๋ฆฌ ์ด์ฉ
left_dis = abs(now[0]-left_now[0]) + abs(now[1]-left_now[1])
right_dis = abs(now[0]-right_now[0]) + abs(now[1]-right_now[1])
if left_dis > right_dis: # ๊ฐ๊น์ด์์ผ๋ก ํฐ์น
answer += "R"
right_now = dic[num]
elif left_dis < right_dis:
answer += "L"
left_now = dic[num]
elif left_dis == right_dis: #๊ฐ์ผ๋ฉด ์ผ์์ก์ด,์ค๋ฅธ์์ก์ดํ๋จ
if hand == "right":
answer += "R"
right_now = dic[num]
else:
answer += "L"
left_now = dic[num]
return answer
๋ค๋ฅธ ์ฌ๋ ํ์ด
https://programmers.co.kr/learn/courses/30/lessons/67256/solution_groups?language=python3&type=all
๋๋ ๋น์ทํ๊ฒ ํ์๋ค! ๋๋ ์ขํ๋ฅผ ์๊ฐํด ๋ด๋ ๊ฒ์ ์๊ฐ์ด ์กฐ๊ธ ๊ฑธ๋ ธ๋๋ฐ, ์ด๋ฐ ์ ํ์ ์ด์ ๋ง๋๋ฉด ๋น ๋ฅด๊ฒ ํ ์ ์์ ๊ฒ ๊ฐ๋ค. ์ด๋ ๊ฒ ๊ณ ์ ๋ ํคํจ๋์ ๊ฐ์ ์์น์์ ์์ง์ด๋ ๋ฌธ์ ์ผ ๊ฒฝ์ฐ ๋ฌด์กฐ๊ฑด ์ขํ๋ฅผ ์ด์ฉํด๋ด์ผ๊ฒ ๋ค!
๋ฐ์ํ
'Algorithm > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ์ ๋ ฌ - H-Index (level.2) (0) | 2021.09.09 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ํด์ - ์์ฅ (level.2) (0) | 2021.09.09 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์๊ฐ ์ฝ๋ ์ฑ๋ฆฐ์ง ์์ฆ 1 - ๋ด์ (level.1) (0) | 2021.09.08 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์ ๋ ฌ - ๊ฐ์ฅ ํฐ ์ (level.2) (0) | 2021.09.07 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์ ๋ ฌ-k๋ฒ์งธ ์ (level.1) (0) | 2021.09.07 |