본문 바로가기
코딩테스트/코딩테스트 문제

코딩테스트 준비 - 프로그래머스: 3진법 뒤집기(파이썬)/파이썬 진법 계산

by 공부가싫다가도좋아 2021. 6. 20.
반응형

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


문제풀러가기

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


문제

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

입출력 예

n result
45 7
125 229

 


풀이

방법 1: 파이썬 진법 기능 사용 해서 풀이

방법 2: 직접 진법 계산 해서 풀이

 


코드 방법1: 진법 기능 사용 해서 풀이

def solution(n):
    result=''
    while n:
        result+=str(n%3)
        n=n//3
    return int(result,3)

int(string, 진법)

=>10진법으로 출력

예) 3진법 21을 10진법으로 바꿀때,

print(int('21',3))

#7
#3진법 21을 
#10진법으로 변환하면 21이다.

코드 방법2: 직접 진법 계산해서 풀이

def solution(n):
    result=[]
    sum=0
    while n!=0:
        result.append(n%3)
        n=n//3
    for i in range(len(result)):
        sum=sum+((3**(len(result)-i-1))*result[i])
        
    
    return sum

3진법을 10진법으로 바꾸는 계산법을 사용해서 풀었습니다.

진법 변환 계산법을 잘모르시는 분은 아래 링크 참조해주세요.

2021.03.09 - [C언어] - 2진수,10진수계산법/이진수,십진수 계산법(빠른 계산법)/이진법,십진법 계산

 

2진수,10진수계산법/이진수,십진수 계산법(빠른 계산법)/이진법,십진법 계산

10진수,2진수 계산법 10진수,2진수,8진수,16진수 표 10진수에서 2진수로 계산하는 방법은 두개가 있습니다. 하나는 기본적인 계산법, 또 다른 하나는 빠른 계산법입니다. 10진수->2진수 계산법 (기본

eunhee-programming.tistory.com


도움이 되셨다면 아래 하트 꾹 눌러주세요 :)

반응형

댓글