๐ŸŒžAlgorithm/๐Ÿ”ฅprogrammers

[programmers] 124 ๋‚˜๋ผ์˜ ์ˆซ์ž

๋ฟŒ์•ผ._. 2021. 12. 1. 12:27

์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ์—ฐ์Šต

 


<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