https://programmers.co.kr/learn/courses/30/lessons/12899
124 나라가 있습니다. 124 나라에서는 10진법이 아닌 다음과 같은 자신들만의 규칙으로 수를 표현합니다.
예를 들어서 124 나라에서 사용하는 숫자는 다음과 같이 변환됩니다.
자연수 n이 매개변수로 주어질 때, n을 124 나라에서 사용하는 숫자로 바꾼 값을 return 하도록 solution 함수를 완성해 주세요.
제한사항
입출력 예
- 규칙 찾기 (1,2,7 차례로 더해짐)
- 3의 배수는 4로 끝나고(4, 14, 24, ...), 3의 배수가 아닌 수는 3진법으로 해결
- 3의 배수이면 4를 먼저 쓰고, 몫-1을 붙임 (ex. 9의 경우 '42')
- 3의 배수가 아니면 n을 3으로 나누고, 나머지를 쓴다.
- 반복한다.
- answer 문자열을 거꾸로 return
def solution(n): answer = '' while n > 0: if n % 3 ==0 : answer += "4" n = n//3 -1 else: answer += str(n % 3) n //= 3 return answer[::-1]
def solution(n): if n <= 3: return '124'[n-1] else: q, r = divmod(n-1, 3) return solution(q) + '124'[r]