[코테]3진법 뒤집기

HOU·2022년 5월 27일
0

코딩테스트

목록 보기
6/24
post-thumbnail

문제

3진법 뒤집기

문제 설명

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

해결 방법

1. 삼진법을 구하자

3으로 나눠준 나머지들을 일렬로 배열하고 돌려주면 3진법이 나올것이다. but 3진법을 뒤집으라 하였으니! 뒤집어주지말자! 숫자를 더하는 연산을 쓰면 , 1 + 2 + 0 = 3이 되는 문제가 있으니 문자열로 변환한다음에 뒤로 붙게 만들어주자

코드

나의 코드

def solution(n):
    answer = 0
    rev_base = ''
    
    while n > 0:
        n, mod = divmod(n, 3)
        rev_base += str(mod)

    return int(rev_base, 3)

여기서 나오는 divmod() 함수는 몫과 나머지를 구해주는 함수이다. 아주 편하게 사용했고, 나머지만을 쉽게 더할 수 있었다.

divmod()

, 나머지 = divmod(10, 3)

divmod(a, b) a는 숫자, b는 나눌 값 a를 b로 나눈다. 10을 3으로 나누는 것과 같다.
처음보는 함수인데 잘 기억해야지!

소감

함수를 잘 사용하고, 로직의 순서를 잘 기억해서 문제를 해결 해야겠다.

profile
하루 한 걸음 성장하는 개발자

0개의 댓글