반응형
https://www.acmicpc.net/problem/31926
#문제 해결 방법
우선 재일 달디달고를 입력하는데는 8회가 걸린다.
그 이후에 달디달고를 연속해서 입력했을때
4개를 만들어야 된다면 2개를 만들고 2개를 복사 할 수 잇다.
8개를 만들어야 된다면 4개를 만들고 복사할 수 있다.
즉 남은 달디달고가 현재 만든 달디달고 의 배수보다 많이 남았다면
1초가 걸리게 된다.
마지막의 달디단은 +1초로 결정해 주면 된다.
왜냐하면 daldida 까지 2의 배수를 복사해오면서 같이 복사해오면 되기 때문이다
그이후에 n 붙이는데 +1초로 이걸 만들어 주면 된다.
#전체 코드
#include <iostream>
#include <vector>
using namespace std;
int main() {
int n;
cin >> n;
int count = 0;
if (n == 1) {
count = 10;
}
else if (n == 2) {
count = 11;
}
else if (n >= 3) {
int temp = 1;
while (temp <= n) {
if (temp * 2 <= n) {
temp *= 2;
count++;
}
else{
count += 2;
break;
}
}
count += 8;
}
cout << count << '\n';
return 0;
}
반응형
'[백준] > C++' 카테고리의 다른 글
백준 1522번 문자열 교환 [C++] (6) | 2024.07.24 |
---|---|
백준 12904번 A와 B [C++] (1) | 2024.07.23 |
백준 8972번 미친 아두이노 [C++] (0) | 2024.07.18 |
백준 2638번 치즈 [C++] (0) | 2024.07.18 |
백준 10703번 유성 [C++] (0) | 2024.07.11 |