문제 링크 (Level 1)
https://programmers.co.kr/learn/courses/30/lessons/68935?language=python3
코딩테스트 연습 - 3진법 뒤집기
자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하인 자연수
programmers.co.kr
나의 코드 (Python)
def solution(n):
answer = 0
arr = "" # 삼진법을 임시 저장할 문자열
while n > 0: # 삼진법 계산
arr += str(n % 3)
n //= 3
arr = arr[::-1] # 문자열을 반대로 정렬
cnt = 1
for i in arr: # 다시 십진법으로 계산
answer += int(i) * cnt
cnt *= 3
return answer
1. 삼진법을 계산하기 위해서 %3으로 나머지를 구합니다.
2. 낮은 숫자부터 1, 3, 9, 27을 곱하기 위해 arr을 역순으로 정렬합니다.
3. 십진법으로 다시 변환합니다.
'코딩공부 > 프로그래머스 (python)' 카테고리의 다른 글
[프로그래머스] 같은 숫자는 싫어 (Python) (0) | 2022.03.31 |
---|---|
[프로그래머스] 두 개 뽑아서 더하기 (Python) (0) | 2022.03.30 |
[프로그래머스] 약수의 개수와 덧셈 (Python) (0) | 2022.03.27 |
[프로그래머스] 실패율 (Python) (0) | 2022.03.27 |
[프로그래머스] 체육복 (Python) (0) | 2022.03.27 |
댓글