백준 문제 링크
고양이는 많을수록 좋다
- 원하는 고양이의 수가 1마리이면 최소 행동은 1
2마리이면 최소 행동은 2
3~4마리이면 최소 행동은 3
5~8마리이면 최소 행동은 4
9~16마리이면 최소 행동은 5
즉, 2의 제곱과 관련이 있다.- for문으로 N이 해당하는 거듭제곱보다 작으면 (곱한 수 + 1)을 출력하면 된다. 즉, 3~4마리는 2^2보다 작으므로, (2+1) = 3을 출력하면 된다.
- 원하는 고양이의 수 N의 최대 수는 10^12(=1,000,000,000,000)이므로 for문에서 최대 i는 2^40(=1099511627776)으로 지정하면 된다.
N = int(input())
if N <= 2:
print(N)
else:
for i in range(2, 41):
if N <= 2**i:
print(i+1)
break