728x90
반응형
https://programmers.co.kr/learn/courses/30/lessons/68935
코딩테스트 연습 - 3진법 뒤집기
자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하인 자연수
programmers.co.kr
풀이
우선 10진법인 n을 3진법으로 바꾸기 위해 while문을 통해 3진법으로 바꿔주었다.
여기서 num3에 저장했는데 저장된 값은 3진법의 역순으로 저장되게 된다.
그래서 여기서 바꾸지 않고 바로 역순이 된 3진법을 10진법으로 바꿔주었다.
45로 예를 들면 3진법은 1200이고 뒤집으면 0021이 된다.
이 수를 다시 10진법으로 바꾸기 위해서 0*(3^3)+0*(3^2)+2*(3^1)+1*(3^0)을 해주면 된다.
그래서 우선 지수를 len(num3)-1로 초기값을 주고 num3를 for문으로 돌면서 위의 계산을 수행했다.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
def solution(n):
answer = 0
num3=[]
while n>0:
a=n%3
num3.append(a)
n=n//3
n=len(num3)-1
for i in range(len(num3)):
answer+=(3**n)*num3[i]
n-=1
return answer
|
cs |
728x90
반응형
'Python3 > 프로그래머스' 카테고리의 다른 글
2022.06.01 [프로그래머스] (python 파이썬) 나머지가 1이 되는 수 찾기 (0) | 2022.06.01 |
---|---|
2022.06.01 [프로그래머스] (python 파이썬) 최소직사각형 (0) | 2022.06.01 |
2022.06.01 [프로그래머스] (python 파이썬) 포켓몬 (0) | 2022.06.01 |
2022.06.01 [프로그래머스] (python 파이썬) 모의고사 (0) | 2022.06.01 |
2022.05.31 [프로그래머스] (python 파이썬) 완주하지 못한 선수 (0) | 2022.05.31 |
댓글