def solution(n): answer ='' count=0 real_answer= 0 for i in range(20,-1,-1) : count=0 if n >= 3**i : count=0 while (n>= 3**i): n -=3**i count+=1 answer+=str(count) elif answer !='': answer +='0' for i in range(len(answer)): real_answer+=int(answer[i])*3**i return real_answer 풀이.
우선 3진법을 만드는 알고리즘에 대해서 생각해보았다. 1.3^i보다 n의 수가 더 큰지 확인한다. 2.만약 n이 더 크다면 n에 3^i만큼 빼주고 뺀 후에도 3^i보다 더 큰지 확인. 이 과정에서 뺀 수를 카운트한다. 3.n이 3^i보다 작아질 때 까지 진행 하고 반복이 끝나면 카운트의 수를 answer에 더한다 . (1,2)두 값중 하나. 4.그다음에는 n과 3^(i-1) 을 비교하고 위 ...
#
1단계
#
int
#
n진법
#
코딩테스트
#
파이썬
#
프로그래머스
원문 링크 : [프로그래머스 파이썬 코딩테스트 1단계]3진법 뒤집기