https://www.acmicpc.net/problem/31926
import sys
input = sys.stdin.readline
n = int(input())
cnt = 8 # 처음 daldidalgo 만들 때 쓰이는 횟수
i = 1
while True:
if n - 2**i == 0:
cnt = cnt + i + 2
break
elif n - 2**i < 0:
cnt = cnt + i + 1
break
i += 1
print(cnt)
- 처음 daldidalgo가 만들어 질 때 d/a/l/d/i/dal/g/o 총 8번 즉 8초가 걸린다.
- n = 2일 때
- 8번 + daldidalgo (복사) + daldida (복사) + n 으로 총 8 + 1 +1 +1
- n = 3일 때
- 8번 + daldidalgo (복사) + daldidalgo daldida (복사) + n으로 총 8 + 1 + 1 + 1
- n = 4일 때
- 8번 + daldidalgo (복사) + daldidalgo daldidalgo (복사) + daldida (복사) + n으로 총 8 +1 +1 +1 +1
- n = 5일 때
- 8번 + daldidalgo (복사) + daldidalgo daldidalgo (복사) + daldidalgo daldida (복사) + n 으로 총 8 + 1 + 1 + 1 + 1
- 이렇게 n이 짝수 일 때 daldida 과 n을 각각 복사 및 추가로 2를 더해주어야 하고 n이 홀수 일 때 daldidalgo daldida 가 한번에 복사 가능하기 때문에 n만 추가해주면 되므로 1을 더해주어야 한다.
'Algorithm > Problems' 카테고리의 다른 글
99클럽 코테 스터디 19일차 TIL + 그리디 (0) | 2024.11.16 |
---|---|
99클럽 코테 스터디 18일차 TIL + 그리디 (1) | 2024.11.14 |
99클럽 코테 스터디 16일차 TIL + 그리디 (1) | 2024.11.13 |
99클럽 코테 스터디 15일차 TIL + 그리디 (0) | 2024.11.12 |
99클럽 코테 스터디 14일차 TIL + 그리디 (0) | 2024.11.11 |