Algorithm Problem/Python
[python] ํ๋ก๊ทธ๋๋จธ์ค - 3์ง๋ฒ ๋ค์ง๊ธฐ (์๊ฐ ์ฝ๋ ์ฑ๋ฆฐ์ง ์์ฆ1)
deo2kim
2020. 10. 22. 08:38
๋ฐ์ํ
๐ค๋ฌธ์ ํด๊ฒฐ
- 3์ง๋ฒ์ผ๋ก ๋ง๋ ๋ค.
- ๋ค์ง์ง๋ง๋ผ
- stack๊ตฌ์กฐ๋ก ๋ฌธ์์ด์ ์์ผ๋ฉด ์ ์ ๋ก ๋ค์ง์ ํํ๊ฐ ๋์จ๋ค.
- 10์ง๋ฒ์ผ๋ก ๋ฐ๊ฟ์ค๋ค.
- ๋ฌธ์์ด์ ์์์๋ถํฐ, 3์ n์น์ ๋ค์์๋ถํฐ ๋ง๋ค์ด์ค๋ค.
๐จ ์ค์ ๋ํ์๊ฐ ๋ ๊ธํ๊ฒ ํ๋ค๊ฐ n ์ด 3๋ณด๋ค ์์ ๋ ์ฒ๋ฆฌ๋ฅผ ์ํด์ค์ ํ๋๋ฌธ์ ํ๋ฆฌ๊ณ ๋์ด๊ฐ๋ค.
( ์๊ฐ ๊น๋นกํ๋ค๊ฐ ๋ฆ๊ฒ ์ ์ฅ ํจ๐ )
๐ป์์ค ์ฝ๋
def solution(n):
answer = 0
# 3์ง๋ฒ
mok = 0
nmg = 0
number = ''
while True:
mok = n // 3
nmg = n % 3
number += str(nmg)
if mok < 3:
number += str(mok)
break
n = mok
print(number)
# 10์ง๋ฒ์ผ๋ก ๋ฐ๊พธ๊ธฐ
leng = len(number)
for i in range(leng):
answer += 3 ** (leng - 1 - i) * int(number[i])
return answer
print(solution(3))
๐๋ฌธ์ ํ์ธ
์ถ์ฒ: ํ๋ก๊ทธ๋๋จธ์ค
๋งํฌ: https://programmers.co.kr/learn/courses/30/lessons/68935?language=python3
์ฝ๋ฉํ ์คํธ ์ฐ์ต - 3์ง๋ฒ ๋ค์ง๊ธฐ
์์ฐ์ n์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. n์ 3์ง๋ฒ ์์์ ์๋ค๋ก ๋ค์ง์ ํ, ์ด๋ฅผ ๋ค์ 10์ง๋ฒ์ผ๋ก ํํํ ์๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์. ์ ํ์ฌํญ n์ 1 ์ด์ 100,000,000 ์ดํ์ธ ์์ฐ์
programmers.co.kr
๋ฐ์ํ