코딩테스트

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

SigmoidFunction 2021. 7. 19. 10:24
728x90

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

 

코딩테스트 연습 - 3진법 뒤집기

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

programmers.co.kr

 

 

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

 

  • n은 1 이상 100,000,000 이하인 자연수입니다.

 

n                                                                           result

45 7
125 229

 

난 진법문제가 어렵똭

 

아직도 진법문제는 고민을 많이 하게 된다 ㅠㅠ

 

그래도 저번에 풀어봐서?

 

혹은 1단계라서?

 

꽤나 금방 해결할 수 있었다.

 

def solution(n):
    third = []
    answer = 0
    while(n>=3):
        third.append((n%3))
        n = n//3
        
    third.append((n))
    
    for i,j in enumerate(reversed(third)):
        answer += j*pow(3,i)
        
    return answer

 

나름 깔끔하게 작성한것 같은데 다른 사람들을 보자

 

 

 

 

def solution(n):
    tmp = ''
    while n:
        tmp += str(n % 3)
        n = n // 3

    answer = int(tmp, 3)
    return answer

워매

 

햇튼 잘 해결했다 오늘도

728x90