68935 | 3진법 뒤집기
https://programmers.co.kr/learn/courses/30/lessons/68935

작성 코드
# 재귀를 이용해 10진법에서 3진법으로 변환
def to_10_3(n):
if n < 3:
return str(n)
else:
return str(n % 3) + to_10_3(int(n//3))
def solution(n):
a = list(to_10_3(n)[::-1])
# 진법 계산하는 방법을 통해 각 자리수 계산 후 sum값 반환
answer = [int(i) * (3**idx) for idx, i in enumerate(a)]
return sum(answer)
이상 코드
def solution(n):
tmp = ''
while n:
tmp += str(n % 3)
n = n // 3
answer = int(tmp, 3)
return answer
학습
- 차례대로 나머지를 구한 후 뒤집으면 됨
- n이 2이하일 때 n//3이 0이 돼서 while문을 빠져 나옴
- n진수에서 10진수로 변환하고 싶을 때 int를 사용하면 됨
반응형
'Algorithm > programmers' 카테고리의 다른 글
| [프로그래머스] 62048 | 멀쩡한 사각형 (0) | 2022.02.08 |
|---|---|
| [프로그래머스] 42579 | 베스트앨범 (0) | 2022.01.18 |
| [프로그래머스] 42578 | 위장 (0) | 2022.01.17 |
| [프로그래머스] 42577 | 전화번호 목록 (0) | 2022.01.07 |
| [프로그래머스] 42576 | 완주하지 못한 선수 (0) | 2022.01.05 |
댓글