[프로그래머스]3진법 뒤집기

iamjinseo·2022년 8월 18일
0

문제풀이-Python

목록 보기
53/134

https://school.programmers.co.kr/learn/courses/30/lessons/68935

문제

자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요.

제한사항
n은 1 이상 100,000,000 이하인 자연수입니다.

풀이

def solution(n):
    res=''
    answer = 0
    # 3진법으로 
    while n!=0:
        res= str(n%3)+res
        n = n//3
    # 앞 뒤 반전 없이 계산 ex) 0021을 10진수로 계산하기위해 1200인 상태에서 각 숫자 값*(각 숫자 인덱스**3)
    for i in range(len(res)):
        answer += int(res[i])*(3**i)
        
    return answer 

앞 뒤 반전 없이 계산한다는 건 아래 그림 참고하면 이해가 쉬움

남의 코드


int(tmp, 3) : 문자열 tmp를 3진수로 바꿈
신기방기

profile
일단 뭐라도 해보는 중

0개의 댓글