티스토리 뷰

728x90
반응형

문제

https://programmers.co.kr/learn/courses/30/lessons/68935?language=python3 

 

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

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

programmers.co.kr

 

코드

def solution(n):
    answer = ''
    while n > 0:
        n,r = divmod(n,3)
        answer += str(r)
    return int(answer, 3)

파이썬에 2,8,10,16 진수는 쉽게 변환할 수 있도록 내장함수가 있지만 3진수는 따로없기 때문에 직접 만들어야 한다.

 

10진수를 n진수로 바꾸는 방법은

바꾸고자 하는 10진수를 n으로 몫이 0이 될 때 까지 나눠주고, 나머지를 아래방향 부터 읽어주면 된다.

 

그래서 맨 처음 나온 나머지를 answer에 넣어주고 계속 while문을 돌면서 넣어주게 되면 뒤집은 효과를 얻게된다.

마지막으로 int(value, base)를 사용해 10진수로 바꿔주면 된다.

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28