안녕하세요 :)
https://programmers.co.kr/learn/courses/30/lessons/12899
진법변환처럼 for 나 while 써도 될 거 같은데 dfs 재귀로 풀었습니다 ….
3으로 나눈 몫으로 dfs를 돌렸고 3으로 나눈 나머지를 이어 붙이는 형식으로 풀었습니다.
뒤에 이어 붙어주고 마지막에 reverse 하면 답이 나옵니다 !
def solution(n):
arr = '124'
if n <= 3:
return arr[n - 1]
n -= 1
result = []
def dfs(n):
if n < 3:
result.append(arr[n])
return
result.append(arr[n % 3])
dfs(n // 3 - 1)
dfs(n)
return ''.join(reversed(result))