https://www.acmicpc.net/problem/27961
마법소녀인 마도카는 너무나도 고양이를 좋아하는 나머지 마법을 이용하여 고양이 N마리를 집에서 키우기로 결심했다!
마법소녀 마도카는 N마리의 고양이를 최소한의 행동 횟수로 생성하려 한다.
초기에는 고양이가 없으며, 다음 두 가지 마법을 사용할 수 있다
마도카는 위의 2가지 마법을 적절히 사용하여, 마도카가 정확히 N마리의 고양이를 만들기 위해 필요한 최소 행동 횟수를 구하라. 🚀
#include<iostream>
using namespace std;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
long long CatNum;
cin >> CatNum;
long long MinMagicNum = 0;
long long CurrentCatNum = 1;
// 아무 고양이도 원하지 않는 경우
if (CatNum == 0)
{
cout << 0 << '\n';
return 0;
}
// 첫 번째 고양이 생성
MinMagicNum = 1;
// 목표 고양이 수에 도달할 때까지
while (CurrentCatNum < CatNum)
{
if (CurrentCatNum >= CatNum - CurrentCatNum)
{
CurrentCatNum += (CatNum - CurrentCatNum);
MinMagicNum++;
break;
}
CurrentCatNum += CurrentCatNum;
MinMagicNum++;
}
cout << MinMagicNum << '\n';
return 0;
}
백준 11053 가장 긴 증가하는 부분 수열 LIS+DP (0) | 2025.02.18 |
---|---|
백준 11399 그리디 알고리즘 (0) | 2025.02.11 |
백준 // 15686// 치킨 거리 //완전 탐색 하기~ (0) | 2025.02.07 |
백준 2615 //오목 (0) | 2025.02.06 |
백준 / 2529 / 백트랙킹 (0) | 2025.02.05 |