본문 바로가기
[Python] Programmers/Level1

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

by 파크영 2021. 6. 15.

문제 설명

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

 

제한사항

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

 

입출력 예

n result
45 7
125 229

 

입출력 예 설명

 

입출력 예 #1

  • 답을 도출하는 과정은 다음과 같습니다.
n (10진법) n (3진법) 앞뒤 반전(3진법) 10진법으로 표현
45 1200 0021 7
  • 따라서 7을 return 해야 합니다.

 

입출력 예 #2

  • 답을 도출하는 과정은 다음과 같습니다.
n (10진법) n (3진법) 앞뒤 반전(3진법) 10진법으로 표현
125 11122 22111 229
  • 따라서 229를 return 해야 합니다.

나의 풀이

[Python(파이썬)]

def solution(n):
    m = []
    while n >= 1:
        m.append(str(n % 3))
        n = n // 3
    return int(''.join(m), 3)

학습한 내용

  • 파이썬 진법 변환(n진법 -> 10진법) - int() 함수 
# int(string, 진법)

print(int('1200',3))
print(int('0021',3))
print(int('11122',3))
print(int('22111',3))

''' 출력값
45
7
125
229
'''
  • 10진법 -> 2, 8, 16진법으로 바꾸는 함수는 아래 글 참조 (이번 문제에서 적용하는 것은 아님)
 

[프로그래머스/Level1] [1차] 비밀지도

문제 설명 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다.

young-library.tistory.com

 

 

문제 출처

 

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

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

programmers.co.kr

 

댓글