문제
캐릭터의 기본 스탯 4개와 장비 보너스 4개가 주어질 때 전투력을 계산하라.
입력
테스트 케이스 수 T, 각 케이스마다 기본 HP/MP/공격력/방어력과 장비 보너스 4개가 주어진다.
출력
각 케이스마다 전투력을 출력한다.
예제
| 입력 | 출력 |
|---|---|
1 100 50 30 20 10 5 -5 -10 | 225 |
풀이
공식에 따라 스탯을 합산하고 하한 보정 후 전투력을 계산한다.
- 기본 스탯과 장비 보너스를 합산한다
- HP와 MP는 최소 1, 공격력은 최소 0으로 보정한다 (방어력은 제한 없음)
HP * 1 + MP * 5 + 공격력 * 2 + 방어력 * 2로 전투력을 계산한다
핵심 아이디어: 각 스탯에 가중치를 곱한 합으로 전투력을 산출하며, 음수 보정 규칙에 주의해야 한다.
코드
#include <iostream>
using namespace std;
int main()
{
int tc;
cin >> tc;
int a[8];
for (int j = 0; j < tc; j++)
{
for (int i = 0; i < 8; i++)
cin >> a[i];
a[0] += a[4];
a[1] += a[5];
a[2] += a[6];
a[3] += a[7];
a[0] < 1 ? a[0] = 1 : 0;
a[1] < 1 ? a[1] = 1 : 0;
a[2] < 0 ? a[2] = 0 : 0;
cout << a[0] * 1 + a[1] * 5 + a[2] * 2 + a[3] * 2 << "\n";
}
}복잡도
- 시간: O(T)
- 공간: O(1)