문제
https://programmers.co.kr/learn/courses/30/lessons/68935
코딩테스트 연습 - 3진법 뒤집기
자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하인 자연수
programmers.co.kr
나의 풀이
def solution(n):
answer=0
s=[]
while n != 0:
s.append(n % 3)
n //= 3
for i in range(1,len(s)+1):
answer += s[-i] * 3 ** (i-1)
return answer
다른 사람의 풀이
def solution(n):
tmp = ''
while n:
tmp += str(n % 3)
n = n // 3
answer = int(tmp, 3)
return answer
def solution(n):
answer = 0
cnt = 1
a = ''
while n>0:
a+=str(n%3)
n = n//3
print(a)
for b in range(len(a),0,-1):
answer += (int(a[b-1])*cnt)
cnt *= 3
return answer