[프로그래머스 / lv.1] 3진법 뒤집기
in Problem Solving on Programers
날짜: 2021년 6월 4일
소요 시간: 16분 16초
카테고리: 인덱싱 태그: 레벨1
, 파이썬
입출력 예시
n | return |
---|---|
45 | 7 |
125 | 229 |
내가 적은 코드
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()
함수를 통해 진법을 바꿀 수 있다는 사실을 알았다.