3진법 뒤집기

Haks.·2025년 1월 1일
0

Study

목록 보기
34/65

문제 설명

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

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

입출력 예
n	result
45	7
125	229

풀이

10진법을 다른진법으로 바꾸는 과정을.. 까먹어서 오래걸렸다.
그 수로 게속 나눠 나머지를 적고 거꾸로 적으면 된다

def solution(n):
    n_3 = ''
    
    # 몫이 0이면 false
    while n : 
        n_3 += str(n % 3)
        n //= 3
    
    # 이미 역순으로 저장되어 있기에 반전 필요 x
    result = 0
    for i, v in enumerate(n_3):
        result += int(v) * (3 ** (len(n_3)-i-1))
    
    return result
  • int() 함수는 숫자로 문자열 다른진법을 10진법으로 바꿀수 있다.
    여기서는 int(n_3,3) 을 해도 결과값이 동일하다.
def solution(n):
    n_3 = ''
    
    # 몫이 0이면 false
    while n : 
        n_3 += str(n % 3)
        n //= 3
    
    # 이미 역순으로 저장되어 있기에 반전 필요 x
   
    return int(n_3, 3)

python은 10진법을 다른진법으로 변환시키는 코드도 존재한다.

  • print(bin(11)[2:]) -> 1011
  • print(oct(11)[2:]) -> 13
  • print(hex(11)[2:]) -> b

0개의 댓글

관련 채용 정보