728x90
반응형
{{문제}}
자연수 n이 매개변수로 주어집니다.
n을 3진법 상에서 앞뒤로 뒤집은 후,
이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요.
※제한사항※
n은 1이상 100,000,000 이하인 자연수입니다.
{{입출력 예시}}
n (10진법) | n (3진법) | 앞뒤 반전(3진법) | 10진법으로 표현 |
45 | 1200 | 0021 | 7 |
따라서 7을 return 해야 합니다.
{{풀이}}
def solution(n):
answer = 0
notation = 3 #3진법
notDone = True
remainders = [] #나머지 리스트
quotient = n #몫
seq = 0 #for문에 쓰일 지수
while notDone:
if notation > quotient:
notDone = False
remainders.append(quotient)
break
remainder = quotient % 3 #나머지
quotient = quotient // 3 #몫
remainders.append(remainder)
#print(list(remainders))
for i in remainders[::-1]:
#print(i)
#seq = len(remainders) - 1
answer += i * (3**seq)
seq += 1
return answer
728x90
반응형
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스]최대공약수와최대공배수-Python3 (0) | 2021.07.29 |
---|---|
[프로그래머스]짝수와홀수-Python3 (0) | 2021.07.29 |
[프로그래머스]완주하지못한선수-Python3 (0) | 2021.07.29 |
[프로그래머스]약수의개수와덧셈-Python3 (0) | 2021.07.29 |
[프로그래머스]소수만들기-C++ (0) | 2021.07.29 |