과정
- 삼진법, 0 대신 4가 쓰임.
- n이 3보다 큰 경우 계속 반복문을 돌아주며 3으로 나눠준다.
- 숫자 n을 3으로 나눴을 때 나머지가 0인 경우 4, 1인 경우 1, 2인 경우 2를 answer에 문자를 추가해준다.
- 나머지가 0인 경우 n에 1을 빼준다.
- 반복문을 빠져 나왔을 때 3인 경우는 4로 나머지 숫자는 그대로 answer에 추가해준다.
- answer에 문자를 순서대로 추가했기 때문에 뒤집어준다.
풀이
def solution(n):
answer = ''
arr = ['4', '1', '2']
if n < 4:
if str(n) not in arr:
return '4'
return str(n)
while n > 3: # 3보다 큰 경우 계속 나눈다.
remainder = n % 3 # 나머지
n //= 3 # 몫
if remainder == 0:
n -= 1
answer += arr[remainder]
if n == 3:
answer += '4'
else:
answer += str(n)
return answer[::-1]