Notice
Recent Posts
Recent Comments
Link
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Tags
more
Archives
Today
Total
관리 메뉴

김찬양의 개발일지

30일차. 3진법 뒤집기 본문

코딩테스트/Programmers Level 1

30일차. 3진법 뒤집기

자유로운영혼이다냥 2023. 12. 24. 22:16

링크

https://school.programmers.co.kr/learn/courses/30/lessons/68935

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 


 

문제


 

정답

def solution(n):
    answer = ''
    while n:
        answer += str(n%3)
        n = n//3

    return int(answer, 3)

 

풀이과정

 

먼저 특정 진수를 만드는 방법이다. n진수의 1의자리는 n을 넘을 수 없으므로 n으로 나누고 남은 나머지이다.

그리고 n의자리는 그 나머지를 제외한것이 올라간 다음 n의 2제곱으로 나누고 남은 나머지이다. 그러므로,

result = ''
while temp:
    result = str(temp%n) + result
    temp = temp//n

이렇게, 앞에 계속 n으로 나눈것을 붙여나가면된다.

그러나, 문제에서 뒤집으라고 햇으므로, 앞이 아닌 뒤에 붙여나간다음 int(str, 진수)로 변환시켜주면 된다.