250x250
Link
λ‚˜μ˜ GitHub Contribution κ·Έλž˜ν”„
Loading data ...
Notice
Recent Posts
Recent Comments
관리 메뉴

Data Science LAB

[Python] ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ μ½”λ”©ν…ŒμŠ€νŠΈ μ—°μŠ΅ level2 (124λ‚˜λΌμ˜ 숫자) λ³Έλ¬Έ

πŸ“ Coding Test/Programmers

[Python] ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ μ½”λ”©ν…ŒμŠ€νŠΈ μ—°μŠ΅ level2 (124λ‚˜λΌμ˜ 숫자)

γ…… γ…œ γ…” γ…‡ 2023. 1. 25. 15:10
728x90

1. 문제 μ„€λͺ…

124 λ‚˜λΌκ°€ μžˆμŠ΅λ‹ˆλ‹€. 124 λ‚˜λΌμ—μ„œλŠ” 10진법이 μ•„λ‹Œ λ‹€μŒκ³Ό 같은 μžμ‹ λ“€λ§Œμ˜ κ·œμΉ™μœΌλ‘œ 수λ₯Ό ν‘œν˜„ν•©λ‹ˆλ‹€.

  1. 124 λ‚˜λΌμ—λŠ” μžμ—°μˆ˜λ§Œ μ‘΄μž¬ν•©λ‹ˆλ‹€.
  2. 124 λ‚˜λΌμ—λŠ” λͺ¨λ“  수λ₯Ό ν‘œν˜„ν•  λ•Œ 1, 2, 4만 μ‚¬μš©ν•©λ‹ˆλ‹€.

예λ₯Ό λ“€μ–΄μ„œ 124 λ‚˜λΌμ—μ„œ μ‚¬μš©ν•˜λŠ” μˆ«μžλŠ” λ‹€μŒκ³Ό 같이 λ³€ν™˜λ©λ‹ˆλ‹€.

10진법124 λ‚˜λΌ10진법124 λ‚˜λΌ

μžμ—°μˆ˜ n이 λ§€κ°œλ³€μˆ˜λ‘œ μ£Όμ–΄μ§ˆ λ•Œ, n을 124 λ‚˜λΌμ—μ„œ μ‚¬μš©ν•˜λŠ” 숫자둜 λ°”κΎΌ 값을 return ν•˜λ„λ‘ solution ν•¨μˆ˜λ₯Ό μ™„μ„±ν•΄ μ£Όμ„Έμš”.

 

 

 

 

 

 

2. μ œν•œμ‚¬ν•­

  • n은 50,000,000μ΄ν•˜μ˜ μžμ—°μˆ˜ μž…λ‹ˆλ‹€.

 

 

 

 

 

 

3. λ‚΄ 풀이 

def solution(n):
    answer = ''
    nums = [1,2,4]
    
    while n > 0:
        n -= 1
        n, v = divmod(n,3)
        answer += str(nums[v])
    return answer[::-1]

 

3진법과 λΉ„μŠ·ν•˜μ§€λ§Œ 0이 λ‚˜μ˜¬ 수 μ—†κΈ° λ•Œλ¬Έμ— n-1 ν•œ λ’€, λ‚˜λ¨Έμ§€λ₯Ό λ¬Έμžμ—΄μ— μΆ”κ°€

 

 

 

 

 

 

4. λ‹€λ₯Έ μ‚¬λžŒ 풀이

def change124(n):
    answer = "0"

    return ['4', '1', '2'][n%3] if n < 4 else change124((n-1) // 3) + ['4', '1', '2'][n%3]
728x90
Comments