[백준 21756번-파이썬] 지우개
알고리즘 공부/BOJ백준 풀이

[백준 21756번-파이썬] 지우개

http://acmicpc.net/problem/21756

{코드}

from math import log2, ceil
n = log2(int(input()))
print(int(2**int(n)))
# --- #
from math import log2
print(int(2**log2(int(input()))))

{설명}

주어진 수가 n일때 답은 2^m <= n < 2^m+1에서 m이 됩니다.

먼저 홀수가 사라지기에 짝수가 답일 수 밖에 없습니다.

그 후에도 결국 절반으로 나누는 연산을 계속하기 때문에 결과적으로 2의 제곱수가 답이 됩니다.

m을 구하기 위해 로그를 구한 후 2**m을 하면 됩니다.