BOJ - 27961

주의·2023년 11월 20일
0

boj

목록 보기
14/214

백준 문제 링크
고양이는 많을수록 좋다

❓접근법

  1. 원하는 고양이의 수가 1마리이면 최소 행동은 1
    2마리이면 최소 행동은 2
    3~4마리이면 최소 행동은 3
    5~8마리이면 최소 행동은 4
    9~16마리이면 최소 행동은 5
    즉, 2의 제곱과 관련이 있다.
  2. for문으로 N이 해당하는 거듭제곱보다 작으면 (곱한 수 + 1)을 출력하면 된다. 즉, 3~4마리는 2^2보다 작으므로, (2+1) = 3을 출력하면 된다.
  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

0개의 댓글