-
백준(BOJ) 12869번 뮤탈리스크알고리즘 풀이/백준(Boj) 2019. 9. 28. 17:17
문제 : https://www.acmicpc.net/problem/12869
12869번: 뮤탈리스크
1, 3, 2 순서대로 공격을 하면, 남은 체력은 (12-9, 10-1, 4-3) = (3, 9, 1)이다. 2, 1, 3 순서대로 공격을 하면, 남은 체력은 (0, 0, 0)이다.
www.acmicpc.net
문제
수빈이는 강호와 함께 스타크래프트 게임을 하고 있다. 수빈이는 뮤탈리스크 1개가 남아있고, 강호는 SCV N개가 남아있다.
각각의 SCV는 남아있는 체력이 주어져있으며, 뮤탈리스크를 공격할 수는 없다. 즉, 이 게임은 수빈이가 이겼다는 것이다.
뮤탈리스크가 공격을 할 때, 한 번에 세 개의 SCV를 공격할 수 있다.
- 첫 번째로 공격받는 SCV는 체력 9를 잃는다.
- 두 번째로 공격받는 SCV는 체력 3을 잃는다.
- 세 번째로 공격받는 SCV는 체력 1을 잃는다.
SCV의 체력이 0 또는 그 이하가 되어버리면, SCV는 그 즉시 파괴된다. 한 번의 공격에서 같은 SCV를 여러 번 공격할 수는 없다.
남아있는 SCV의 체력이 주어졌을 때, 모든 SCV를 파괴하기 위해 공격해야 하는 횟수의 최솟값을 구하는 프로그램을 작성하시오.
풀이 :
scv가 한개든 두,세개든 0으로 모두 기본값을 주고 체력을 따로 받은 후 재귀함수를 돌리자. 이렇게 하면 scv의 수에 상
관없이 같은 재귀함수를 호출할 수 있다.
뮤탈리스크는 -9 -3 -1의 피해를 줌으로 각 scv의 체력이 깍이는 경우의 수는 6가지이다.
-1 -3 -9 // -1 -9 -3 // -3 -1 -9 // -3 -9 -1 // -9 -1 -3 // -9 -3 -1
체력이 음수가 나올경우에는 해당 scv의 체력을 0으로 만들고 재귀함수를 돌리자.
코드 ( C ++ )
'알고리즘 풀이 > 백준(Boj)' 카테고리의 다른 글
백준(BOJ) 1600번 말이 되고픈 원숭이 (63) 2019.10.03 백준(BOJ) 14442번 벽 부수고 이동하기 2 (31) 2019.10.01 백준(BOJ) 5014번 스타트링크 (31) 2019.09.27 백준(BOJ) 15683번 감시 (31) 2019.09.26 백준(BOJ) 14238번 출근 기록 (31) 2019.09.25