[백준1740]파이썬-거듭제곱
2022. 4. 11. 00:15ㆍ[알고리즘]백준-파이썬
https://www.acmicpc.net/problem/1740
1740번: 거듭제곱
3의 제곱수를 생각하자. 3의 0제곱, 3의 1제곱, 3의 2제곱, ... 은 순서대로 1, 3, 9, 27, ... 이 된다. 이를 바탕으로, 한 개 이상의 서로 다른 3의 제곱수의 합으로 표현되는 수를 생각할 수 있다. 예를
www.acmicpc.net
문제
3의 제곱수를 생각하자. 3의 0제곱, 3의 1제곱, 3의 2제곱, ... 은 순서대로 1, 3, 9, 27, ... 이 된다.
이를 바탕으로, 한 개 이상의 서로 다른 3의 제곱수의 합으로 표현되는 수를 생각할 수 있다. 예를 들어 30은 27과 3의 합이므로, 이러한 수에 포함된다.
한 개 이상의 서로 다른 3의 제곱수의 합으로 표현되는 N번째로 작은 수를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 N이 주어진다. N은 500,000,000,000 이하의 자연수이다.
출력
첫째 줄에 한 개 이상의 서로 다른 3의 제곱수의 합으로 표현되는 N번째로 작은 수를 출력한다.
풀이
처음에는 뭘 해야할지 몰라서 다른 블로그를 참고했다.
입력받은 n을 이진수로 변환해주고 3에다가 1이 있는 자릿수에 거듭제곱을 해줬다.
import sys
input=sys.stdin.readline
n=int(input())
tmp=[]
ans=0
while n>0:
tmp.append(n%2)
n//=2
for i in range(len(tmp)):
if tmp[i]==1:
ans+=3**i
print(ans)'[알고리즘]백준-파이썬' 카테고리의 다른 글
| [백준 4344번]파이썬-평균은 넘겠지 (0) | 2022.04.12 |
|---|---|
| [ 백준 1110번]파이썬-더하기 사이클 (0) | 2022.04.12 |
| [백준1012]파이썬-유기농 배추 (0) | 2022.04.10 |
| [백준 1715번]파이썬-카드 정렬하기 (0) | 2022.04.10 |
| [백준 2309번]파이썬-일곱 난쟁이 (0) | 2022.04.10 |