Algorithm Problem/Python

[python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - 3์ง„๋ฒ• ๋’ค์ง‘๊ธฐ (์›”๊ฐ„ ์ฝ”๋“œ ์ฑŒ๋ฆฐ์ง€ ์‹œ์ฆŒ1)

deo2kim 2020. 10. 22. 08:38
๋ฐ˜์‘ํ˜•

๐Ÿค”๋ฌธ์ œ ํ•ด๊ฒฐ

  1. 3์ง„๋ฒ•์œผ๋กœ ๋งŒ๋“ ๋‹ค.
  2. ๋’ค์ง‘์ง€๋งˆ๋ผ
    1. stack๊ตฌ์กฐ๋กœ ๋ฌธ์ž์—ด์„ ์Œ“์œผ๋ฉด ์ €์ ˆ๋กœ ๋’ค์ง‘์€ ํ˜•ํƒœ๊ฐ€ ๋‚˜์˜จ๋‹ค.
  3. 10์ง„๋ฒ•์œผ๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค.
    1. ๋ฌธ์ž์—ด์€ ์•ž์—์„œ๋ถ€ํ„ฐ, 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

 

๋ฐ˜์‘ํ˜•