728x90
def solution(n):
numStr = []
while (n != 0): # 3진법 거꾸로 0021
numStr.append(n%3)
n = n//3
numStr.reverse() # 3진법 1200
# 자리수*(3^인덱스)
return sum([digit*(3**i) for i, digit in enumerate(numStr)])
<내 풀이 분석>
1. 3을 계속 나누면서 나머지를 구하는 방식으로 3진법 각 자리수를 구함. => [0,0,2,1]
2. 인덱스를 지수로 사용하기 위해 reverse()를 해줌 => [1,2,0,0]
3. 각 자리수에 맞는 3의 지수승을 곱한 리스트의 sum을 리턴
728x90
'알고리즘 > programmers[1]' 카테고리의 다른 글
[프로그래머스] 두 개 뽑아서 더하기: python3 (0) | 2022.01.21 |
---|---|
[프로그래머스] 예산: python3 (0) | 2022.01.21 |
[프로그래머스] 약수의 합: python3 (0) | 2022.01.21 |
[프로그래머스] 약수의 개수와 덧셈: python3 (0) | 2022.01.21 |
[프로그래머스] 실패율: python3 (0) | 2022.01.20 |