#include <iostream>
#include <algorithm>
using namespace std;
#define IAMFAST ios_base::sync_with_stdio(false);cin.tie(0);
typedef long long ll;
typedef pair<int, int> pii;
typedef pair<long long, long long> pll;
int n;
void INPUT()
{
IAMFAST
cin >> n;
}
void solution()
{
/**
* n = 1 일 때,
* (d)(a)(l)(d)(i)(dal)(g)(o) (daldida)(n) => 10
* n = 2 일 때,
* (daldidalgo) (daldidalgo) (daldida)(n) => 8 + 1 + 2 = 11
* n = 3 일 때,
* (daldidalgo) (daldidalgo) (daldidalgo daldida)(n) => 8 + 1 + 2 = 11
* n = 4 일 때,
* (daldidalgo) (daldidalgo) (daldidalgo) (daldidalgo daldida)(n) => 8 + 1 + 1 + 2 = 12
* n = 7 일 때,
* (daldidalgo) (daldidalgo) (daldidalgo daldidalgo) (daldidalgo daldidalgo daldidalgo daldida)(n)
* => 8 + 1 + 1 + 2 = 12
* n = 8 일 때,
* (daldidalgo) (daldidalgo) (daldidalgo daldidalgo) (daldidalgo) (daldidalgo daldidalgo daldidalgo daldida)(n)
* => 8 + 1 + 1 + 1 + 2 = 13
*
* 위와 같은 규칙을 통해 2^k개의 daldidalgo가 있을 때,
* (2^k + 1 ~ 2^(k+1) - 1)개의 daldidalgo 뒤에 (daldidalgo daldida)을 복사할 수 있음을 알 수 있다.
*
* 즉, 2^(k+1)개부터는 추가로 1개의 daldidalgo를 복사하는 작업이 추가되어야하므로,
* 시간이 1 증가하게 된다.
*/
int ans = 10;
int cri = 1;
while (n >= cri * 2)
{
ans++;
cri *= 2;
}
cout << ans;
}
int main()
{
INPUT();
solution();
}
GOLD5 미만 난이도는 알고리즘 및 풀이 설명을 주석으로 대체합니다.
주석을 참고해주세요.