[프로그래머스 Lv1] 3진법 뒤집기 (파이썬)

Jewon Joel Park·2022년 6월 7일
0

Programmers-solution

목록 보기
12/34

문제 링크


문제 설명

자연수 n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 반환하는 함수 작성


풀이 코드

def solution(n):
    answer = ''
    while n > 0:
        n, m = divmod(n, 3)
        answer += str(m)
    return int(answer, 3)

코드 설명

  1. 10진법 수를 i진법으로 변환하는 기법 중 해당 수를 i로 나눴을 때 나오는 나머지들을 역순으로 정렬할 경우 i진법 수로 변환된다는 원리를 사용하며, int(n[, i])함수를 활용하기 위해 문자열을 하나씩 더해가는 방식 채용
  2. 재귀적으로 n이 0 이상일 경우에만 작동하도록 while Loop 선언, 몫과 나머지를 반환해주는 divmod()함수를 활용하여 n을 업데이트하고, 나머지인 m을 문자열 answer에 반복적으로 더해줌
  3. 문자열 answer에 더해진 숫자들을 역순정렬하면 i진법 수가 되지만, 문제에서 이 숫자를 역순된 상태 그대로 활용하라고 하였으므로 해당 과정은 생략
  4. int()함수를 활용하여 3진법 문자열을 10진법 정수형으로 변환하여 반환
profile
10년을 돌고 돌아 마침내 제자리를 찾은 문과 출신 Python 개발자의 인생기록장

0개의 댓글