c++/학교 문제 풀이

c++ 문제 풀이 - 위대한 전사

psb08 2025. 3. 24. 12:11
728x90

위대한 전사 

#include<iostream>
#include<algorithm>
using namespace std;

int cnt;  

void skill(int hp) 
{
	if (hp <= 0) cnt++;
	else
	{
		skill(hp - 1);
		skill(hp - 3);
	}
}

int main()
{
	int hp;
	cin >> hp;
	skill(hp);
	cout << cnt;
}

비버나라의 위대한 전사는 2가지 공격 기술을 구사할 수 있습니다.

체력이 4인 몬스터를 잡기 위해 기술을 사용하는 방법은 총 6가지로 다음과 같습니다.

 

1번 방법 : 1번 기술 사용 -> 1번 기술 사용 ( 총 피해 : 6 )
2번 방법 : 1번 기술 사용 -> 2번 기술 사용 ( 총 피해 : 4 )
3번 방법 : 2번 기술 사용 -> 1번 기술 사용 ( 총 피해 : 4 )
4번 방법 : 2번 기술 사용 -> 2번 기술 사용 -> 1번 기술 사용 ( 총 피해 : 5 )
5번 방법 : 2번 기술 사용 -> 2번 기술 사용 ->2번 기술 사용 ->  1번 기술 사용 ( 총 피해 : 6 )
6번 방법 : 2번 기술 사용 -> 2번 기술 사용 -> 2번 기술 사용 ->  2번 기술 사용 ( 총 피해 : 4 )

 

위대한 전사가 사냥해야하는 몬스터의 체력이 주어질 때,몬스터를 사냥하기 위해 가능한 기술 사용 순서의 경우의 수를 구하는 프로그램입니다.

 

실행 예시

 

728x90