알고리즘(Algorithm)/백준(Baekjoon)

[백준 Baekjoon] 2851번 슈퍼마리오 - JAVA

나아가는중 2021. 11. 20. 20:07
반응형

백준 Baekjoon 2851번 슈퍼마리오 - JAVA


문제 설명

문제 설명에는 중간에 먹는 것을 중단했다는 이야기 등이 나오는데, 무시하고 10개 버섯을 계속 먹는다 생각하면 된다. 계속해서 버섯의 점수를 누적하며 100과 최소 차가 나오는 경우 점수를 갱신해주면 된다.

100에 가까운 수가 2개라면 큰 값을 선택하는건 비교 조건문에서 작거나 같은 경우로 하면 된다.

소스 코드

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

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

        int sum = 0, diff = 100, answer = -1;

        for (int i = 0; i < 10; i++) {
            sum += Integer.parseInt(br.readLine());

            if (Math.abs(100 - sum) <= diff) {
                diff = Math.abs(100 - sum);
                answer = sum;
            }
        }

        System.out.println(answer);
    }
}
반응형