
문제 설명
자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요.
제한사항
n은 1 이상 100,000,000 이하인 자연수입니다.
입출력 예시
s | result |
---|---|
45 | 7 |
125 | 229 |
풀이 코드
진법 변환 함수를 만들 수 있다면 굉장히 쉬운 문제. 진법 변환 함수 같은 간단한 함수는 외워두자.
def radixChange(num, radix):
if num == 0:
return 0
nums = []
while num:
num, digit = divmod(num, radix)
nums.append(str(digit))
return ''.join(reversed(nums))
def solution(n):
# 1. n을 3진수로 변환한 뒤 뒤집는다.
change_n = radixChange(n, 3)[::-1]
# 2. 뒤집은 n(3진수)를 다시 10진수로 표현한 뒤 반환한다.
# x 진법 -> 10진법 int(<진법 문자열>, <해당 문자열의 진법>)
return int(change_n, 3)
'알고리즘 정리' 카테고리의 다른 글
파이썬(Python) 알고리즘 문제풀이 문자열 압축 [프로그래머스 / 문자열] (0) | 2023.05.25 |
---|---|
파이썬(Python) 알고리즘 문제풀이 짝지어 제거하기 [프로그래머스 / 문자열] (0) | 2023.05.25 |
자바(Java) 알고리즘 문제풀이 귤 고르기 [프로그래머스 / 그리디] (1) | 2022.12.01 |
자바(Java) 알고리즘 문제풀이 단어변환 [프로그래머스 / DFS] (0) | 2022.11.24 |
자바(Java) 알고리즘 문제풀이 주식가격 [프로그래머스 / 스택/큐] (0) | 2022.11.23 |