์ฝ๋ฉ ํ ์คํธ ์ฐ์ต
<124 ๋๋ผ์ ์ซ์>
๋ฌธ์ ์ค๋ช
124 ๋๋ผ๊ฐ ์์ต๋๋ค. 124 ๋๋ผ์์๋ 10์ง๋ฒ์ด ์๋ ๋ค์๊ณผ ๊ฐ์ ์์ ๋ค๋ง์ ๊ท์น์ผ๋ก ์๋ฅผ ํํํฉ๋๋ค.
124 ๋๋ผ์๋ ์์ฐ์๋ง ์กด์ฌํฉ๋๋ค. 124 ๋๋ผ์๋ ๋ชจ๋ ์๋ฅผ ํํํ ๋ 1, 2, 4๋ง ์ฌ์ฉํฉ๋๋ค.
์๋ฅผ ๋ค์ด์ 124 ๋๋ผ์์ ์ฌ์ฉํ๋ ์ซ์๋ ๋ค์๊ณผ ๊ฐ์ด ๋ณํ๋ฉ๋๋ค.
์์ฐ์ n์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, n์ 124 ๋๋ผ์์ ์ฌ์ฉํ๋ ์ซ์๋ก ๋ฐ๊พผ ๊ฐ์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์.
์ ํ ์ฌํญ
- n์ 500,000,000 ์ดํ์ ์์ฐ์์ ๋๋ค.
๋ฌธ์ ํ์ด
- my solution
def solution(n):
answer = ''
arr=['4','1','2']
while True:
answer+=arr[n%3] # ๋๋จธ์ง idx์ ํด๋นํ๋ ๊ฐ
if n%3==0: # 3์ผ๋ก ๋๋์ด๋จ์ด์ง๋ฉด -1
n=n//3-1
else:
n=n//3
if n==0: # ์ข
๋ฃ ์กฐ๊ฑด
break
answer=answer[::-1] # ๋ค์ง๊ธฐ
return answer
1) ๊ท์น์ ์ฐพ์ [4,1,2]๋ก list ์ ์ธ
2) while๋ฌธ : 3์ผ๋ก ๋๋ ๋๋จธ์ง ๊ฐ์ index๋ก ์ค์
3์ผ๋ก ๋๋์ด ๋จ์ด์ง๋ฉด ๋ชซ์ 1์ฉ ๋นผ์ผ ํ๋ ๊ท์น์ ์ฐพ์
๋๋์ด ๋จ์ด์ง์ง ์๋๋ค๋ฉด ๋ชซ ์ ์ฅ
์ข ๋ฃ ์กฐ๊ฑด: n == 0
3) answer์ ๊ตฌํ ๊ฐ์ ๋ค์ง์ ๊ฐ
์๊ฐ๐ค
์กฐ๊ธ ํผ๋์ค๋ฌ์ ์ง๋ง ์ค์ ๋ก ๊ตฌํ์ ๊ธธ์ง ์์๋ ๋ฌธ์ !
3์ผ๋ก ๋๋์ด ๋จ์ด์ง ๋ 1์ ๋นผ์ผ ํ๋ค๋ ์ฌ์ค์ ์์์ฐจ๋ฆฌ๋ฉด ,, ๊ธ๋ฐฉ ํ ์ ์์๋ค.
๋ค๋ฅด๊ฒ ํผ ์ฌ๋๋ค์ด ์์ง๋ง,, ๊ทธ๊ฒ ๋ง๋ ๊ฒ ๊ฐ์ง๋ง,, ์ด๋ ๊ฒ๋ ํ๋ฆฐ๋ค..(?)
์ถ์ฒ: ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉ ํ ์คํธ ์ฐ์ต, https://programmers.co.kr/learn/challenges