본문 바로가기
코딩테스트 준비/백준

[백준] 30987번 - 하루 피부과 [Java]

by mwzz6 2025. 3. 10.

https://www.acmicpc.net/problem/30987

 

[백준] 30987번 - 하루 피부과 [Java]
[백준] 30987번 - 하루 피부과 [Java]


1.  아이디어

 

2차 함수의 정적분을 구현하는 문제로 정적분에서 상수가 소거되므로 상수항을 제외한 부정적분에 적분 구간을 입력하면 값이 나오도록 calculate 메서드를 활용했다.


2. 문제풀이

 

2차 함수와 1차 함수의 차는 계수 차로 계산하면 되고 이후 적분값을 메서드로 구하는 방법으로 구현했다.


3. 코드

 

import java.io.*;
import java.util.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());

        int x1 = Integer.parseInt(st.nextToken());
        int x2 = Integer.parseInt(st.nextToken());

        st = new StringTokenizer(br.readLine());
        int a = Integer.parseInt(st.nextToken());
        int b = Integer.parseInt(st.nextToken());
        int c = Integer.parseInt(st.nextToken());
        int d = Integer.parseInt(st.nextToken());
        int e = Integer.parseInt(st.nextToken());
        b -= d;
        c -= e;

        System.out.println(calculate(a, b, c, x2) - calculate(a, b, c, x1));
    }

    private static int calculate(int a, int b, int c, int x) {
        return (int) (Math.pow(x, 3) * a / 3 + Math.pow(x, 2) * b / 2 + x * c);
    }

}

4. 후기