© 2025 anveloper.dev
GitHub·LinkedIn·Contact

목차

  • 문제
  • 입력
  • 출력
  • 예제
  • 풀이
  • 코드
  • 복잡도
풀이 목록으로 돌아가기

BOJ 12790 - Mini Fantasy War

2024-12-13
BOJ
브론즈 III
cpp
원본 문제 보기
수학
구현

문제

BOJ 12790 - Mini Fantasy War

캐릭터의 기본 스탯 4개와 장비 보너스 4개가 주어질 때 전투력을 계산하라.

입력

테스트 케이스 수 T, 각 케이스마다 기본 HP/MP/공격력/방어력과 장비 보너스 4개가 주어진다.

출력

각 케이스마다 전투력을 출력한다.

예제

입력출력
1 100 50 30 20 10 5 -5 -10225

풀이

공식에 따라 스탯을 합산하고 하한 보정 후 전투력을 계산한다.

  1. 기본 스탯과 장비 보너스를 합산한다
  2. HP와 MP는 최소 1, 공격력은 최소 0으로 보정한다 (방어력은 제한 없음)
  3. 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)