반응형
[ Contents ]
1. 문제 (링크 참조)
2. 문제 풀이
생성마법: +1
복제마법: 1 ~ 2배
마법을 최소로 사용해서 고양이를 N마리로 만들어야 합니다.
보통 이런 문제는 DP를 사용하지만, 이 문제는 당연히 복제마법의 효율이 좋습니다. 사실상 생성마법 ∈ 복제마법인 셈이죠. 맨 처음에만 생성마법으로 +1을 시키고, 그 다음에는 복제마법만 쓰면 됩니다.
3. 코드
import sys
import math
input = sys.stdin.readline
# 입력
n = int(input())
if n == 0:
print(0)
elif n == 1:
print(1)
else:
# log2
res = math.ceil(round(math.log(n, 2), 10))
print(res+1)
정밀도가 너무 높으면 오히려 오차가 나는 듯합니다. 로그함수를 사용할 때, 정밀도를 10으로 제한해줍니다.
반응형
'Algorithm' 카테고리의 다른 글
[구현/수학] 백준 28135 Since 1973 - 파이썬(Python) (0) | 2023.06.01 |
---|---|
[구현/수학] 백준 6840 Who is in the middle? - 파이썬(Python) (0) | 2023.06.01 |
[구현/수학] 백준 27960 사격 내기 - 파이썬(Python) (0) | 2023.05.06 |
[구현/수학] 백준 27868 On My Way Dorm - 파이썬(Python) (0) | 2023.05.05 |
[구현/수학] 백준 27724 팝핀 소다 - 파이썬(Python) (0) | 2023.05.04 |
댓글