🌞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