[BOJ] 12869 뮤탈리스크 - 완전탐색
글 작성자: Sowhat_93


문제에서 제시한 최대 SCV는 3마리 이다.
세마리의 SCV가 있다고 하자.
뮤탈의 쓰리쿠션 공격 방법은 모두 6가지 이다.
A -> B -> C
A -> C -> B
B -> A -> C
B -> C -> A
C -> A -> B
C -> B -> A
이 6 가지 경우로 재귀호출을 계속 하게 되면 언젠가 SCV 3마리의 체력이 모두 0이하가 될 것이다.
재귀 호출의 Depth 자체가 공격회수와 같다고 볼수있으므로,
이를 비교해 최소값을 구하면 된다.
코드를 구현하면 다음과 같다.
SCV의 체력이 음수가 될수 있음에 유의한다.
#define _CRT_SECURE_NO_WARNINGS #include <cstdio> #include <algorithm> #include <cstring> #include <iostream> int Max = 0x7FFFFFFF; using namespace std; int Hp[61][61][61]; int RecursiveMutal(int A, int B, int C) { if (A == 0 && B == 0 && C == 0) return 0; if (Hp[A][B][C] != -1) return Hp[A][B][C]; int Ret = Max; Ret = min(Ret, RecursiveMutal( A - 1 < 0 ? 0 : A - 1, B - 3 < 0 ? 0 : B - 3, C - 9 < 0 ? 0 : C - 9) + 1); Ret = min(Ret, RecursiveMutal( A - 1 < 0 ? 0 : A - 1, B - 9 < 0 ? 0 : B - 9, C - 3 < 0 ? 0 : C - 3) + 1); Ret = min(Ret, RecursiveMutal( A - 3 < 0 ? 0 : A - 3, B - 1 < 0 ? 0 : B - 1, C - 9 < 0 ? 0 : C - 9) + 1); Ret = min(Ret, RecursiveMutal( A - 3 < 0 ? 0 : A - 3, B - 9 < 0 ? 0 : B - 9, C - 1 < 0 ? 0 : C - 1) + 1); Ret = min(Ret, RecursiveMutal( A - 9 < 0 ? 0 : A - 9, B - 1 < 0 ? 0 : B - 1, C - 3 < 0 ? 0 : C - 3) + 1); Ret = min(Ret, RecursiveMutal( A - 9 < 0 ? 0 : A - 9, B - 3 < 0 ? 0 : B - 3, C - 1 < 0 ? 0 : C - 1) + 1); Hp[A][B][C] = Ret; return Ret; } int main() { int RemainHp[3] = { 0 , }; int NumScv = 0; memset(Hp, -1, sizeof(Hp)); std::cin >> NumScv; for (int i = 0; i < NumScv; ++i) std::cin >> RemainHp[i]; std::cout << RecursiveMutal(RemainHp[0], RemainHp[1], RemainHp[2]); return 0; }
이 글은
(새창열림)
본 저작자 표시 규칙 하에 배포할 수 있습니다. 자세한 내용은 Creative Commons 라이선스를 확인하세요.
Creative Commons
본 저작자 표시
'알고리즘' 카테고리의 다른 글
[BOJ] 2579 계단 오르기 - 동적계획법 (0) | 2022.01.13 |
---|---|
[BOJ] 1932 정수 삼각형 - 동적 계획법 (0) | 2022.01.10 |
[BOJ] 13902 개업 2 - 동적 계획법 (0) | 2021.12.03 |
[BOJ] 1904 01타일 - 동적 계획법 (0) | 2021.12.03 |
[BOJ] 14889 스타트와 링크 - Back Tracking (0) | 2021.12.02 |
댓글
이 글 공유하기
다른 글
-
[BOJ] 2579 계단 오르기 - 동적계획법
[BOJ] 2579 계단 오르기 - 동적계획법
2022.01.13 -
[BOJ] 1932 정수 삼각형 - 동적 계획법
[BOJ] 1932 정수 삼각형 - 동적 계획법
2022.01.10 -
[BOJ] 13902 개업 2 - 동적 계획법
[BOJ] 13902 개업 2 - 동적 계획법
2021.12.03 -
[BOJ] 1904 01타일 - 동적 계획법
[BOJ] 1904 01타일 - 동적 계획법
2021.12.03
댓글을 사용할 수 없습니다.