기억은 짧고 기록은 길다
[프로그래머스/Programmers] 3진법 뒤집기 - Python 본문
Link
코딩테스트 연습 - 3진법 뒤집기
자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하인 자연수
programmers.co.kr
Solution
해당 문제는 10진수를 n진수로 변환하는 방법만 알고 있었다면 쉽게 해결할 수 있는 문제였다.
10진수를 n진수로 변환하는 방법, n진수를 n진수로 변환하는 방법을 작성해뒀으니 참고바란다.
def reverse_ternary(n):
ter = ''
while n > 0:
n, mod = divmod(n, 3)
ter += str(mod)
return ter
def solution(n):
return int(reverse_ternary(n), 3)
🔑 key point: 10진수 -> n진수 변환법
def solution(n, q):
rev_base = ''
while n > 0:
n, mod = divmod(n, q)
rev_base += str(mod)
return rev_base[::-1]
📌 Tip: n진수 -> n진수 변환법
ex) 45_(10) -> solution(45, 3)_(3) -> solution(int(solution(45, 3), 3), 9)_(9)
10진수를 3진수로 변환 후 9진수로 변환하고 싶을때에는 변환한 3진수를 다시 10진수로
변환해준 다음 9진수로 변환해준다.
solution(int(solution(45, 3), 3), 9)
'CodingTest > programmers' 카테고리의 다른 글
[프로그래머스/Programmers] 신규 아이디 추천 - Python (1) | 2021.09.04 |
---|---|
[프로그래머스/Programmers] 로또의 최고 순위와 최저 순위 - Python (0) | 2021.09.04 |
[프로그래머스/Programmers] 4주차_직업군 추천하기 - Python (0) | 2021.09.04 |
[프로그래머스/Programmers] 2주차_상호 평가 - Python (0) | 2021.09.03 |
[프로그래머스/Programmers] 1주차_부족한 금액 계산하기 - Python (0) | 2021.09.03 |
Comments