[프로그래머스 / lv.1] 3진법 뒤집기


날짜: 2021년 6월 4일
소요 시간: 16분 16초
카테고리: 인덱싱 태그: 레벨1, 파이썬

코딩테스트 연습 - 3진법 뒤집기

입출력 예시

nreturn
457
125229

내가 적은 코드

def solution(n):
    answer = 0
    num = []
    while n != 0:
        m = n % 3
        n = n // 3
        num.append(m)
    num = num[::-1]

    for i in range(0,len(num)):
        answer += num[i] * (3**i)
    return answer

풀이 과정

정수형 n을 0이 될 때까지 나눈 나머지를 num에 저장한다. (기본적인 진수 변환 법)
그리고 num의 원소를 거꾸로 뒤집은 각 원소를 3의 i승씩 곱해준다.

베스트 코드

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

    answer = int(tmp, 3)
    return answer

반성

  • 문자열 인덱싱을 통하지 않고 바로 정수형으로 풀 수 있는 문제였다. 좀 더 머리를 굴렸으면 보다 빠른 코드를 짤 수 있었다.
  • int()함수를 통해 진법을 바꿀 수 있다는 사실을 알았다.




© 2021. by hminkim