124 나라의 숫자

Eunseo·2022년 5월 2일
0

Programmers

목록 보기
3/9
post-thumbnail

124 나라의 숫자 문제 링크
https://programmers.co.kr/learn/courses/30/lessons/12899

Summary
3진법을 활용하는 문제


Description

124 나라가 있습니다. 124 나라에서는 10진법이 아닌 다음과 같은 자신들만의 규칙으로 수를 표현합니다.

124 나라에는 자연수만 존재합니다.
124 나라에는 모든 수를 표현할 때 1, 2, 4만 사용합니다.

예를 들어서 124 나라에서 사용하는 숫자는 다음과 같이 변환됩니다.

10진법124 나라10진법124 나라
11614
22721
34822
411924
5121041

자연수 n이 매개변수로 주어질 때, n을 124 나라에서 사용하는 숫자로 바꾼 값을 return 하도록 solution 함수를 완성해 주세요.

[제한사항]

  • n은 500,000,000이하의 자연수 입니다.

[입출력 예]

nresult
11
22
34
411

Checking List

  • 혼자서 문제를 해결
  • 힌트를 보고 해결
  • 답을 보고 해결

My Answer

  • 정확성 : 통과
  • 효율성 : 통과
def solution(n):
    lis = ['1','2','4']
    answer = ''
    while (n-1)//3 > 0:
        m,r = divmod(n-1,3)
        answer+=lis[r]
        n = m
    m,r = divmod(n-1,3)
    answer+=lis[r]
    return answer[::-1]

Answer Sheet

  • 재귀를 이용한 풀이
def solution(n):
    if n<=3:
        return '124'[n-1]
    else:
        q, r = divmod(n-1, 3) 
        return solution(q) + '124'[r]

출처: 링크


Trial & Error

  • 수를 나누었을 때 나머지가 0일 경우를 어떻게 처리해주어야 할지 고민하느라 시간을 많이 썼다.

  • 힌트를 보고 규칙을 찾아보니 답이 보여서 해결할 수 있었다.


Takeaway

  • 반복적인 기능을 수행하는 경우, 재귀를 사용해보자!

  • 이런 수학적인 문제를 풀 때 아직도 포기해버리는 습관이 있는데, 앞으로는 포기하지 않도록 연습을 많이해서 자신감을 키워야겠다.


profile
내가 공부한 것들

0개의 댓글