Algorithm/Problems
99클럽 코테 스터디 17일차 TIL + 그리디
공부좀하시졍
2024. 11. 14. 00:24
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을 더해주어야 한다.