본문 바로가기

알고리즘(백준 등) 공부

SWEA 11387. 몬스터 사냥

용사의 기본 공격력이 D, 레벨이 L, 공격할 횟수가 N이고 다음 공격의 데미지는 다음과 같을 때 누적 데미지를 구하는 문제이다.

D(1+nㆍL%)가 된다. %는 1/100을 의미하며 n은 이전까지 공격 횟수를 의미한다. 또한 D는 100의 배수이다.

 

분배법칙에 의해 D + D * n * L / 100 을 0부터 N-1까지 합하게 된다.  1부터 N까지 연속된 정수의 합은 n(n+1) / 2 공식에 따라서 답은 D * n + D / 100 * L * (N * (N - 1)) /2 이다.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Solution {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int T = Integer.parseInt(br.readLine());
        
        StringBuilder sb = new StringBuilder();
        for (int tc = 1; tc <= T; tc++) {
            sb.append('#').append(tc).append(' ');
            StringTokenizer st = new StringTokenizer(br.readLine());
            int d = Integer.parseInt(st.nextToken()), l = Integer.parseInt(st.nextToken());
            int n = Integer.parseInt(st.nextToken());
            int answer = d * n + d / 100 * l * ((n * (n - 1)) / 2);
            sb.append(answer).append('\n');
        }
        
        br.close();
        System.out.print(sb);
    }
}

 

 

'알고리즘(백준 등) 공부' 카테고리의 다른 글

SWEA 11315. 오목 판정  (0) 2026.06.02
SWEA 11316. 주기 찾기  (0) 2026.06.01
SWEA 11445. 무한 사전  (0) 2026.05.31
SWEA 11446. 사탕 가방  (0) 2026.05.31
SWEA 11545. 틱택톰  (0) 2026.05.30