백준 [2851] 슈퍼 마리오 JAVA 풀이 (브루트포스, 누적합)

2026. 4. 25. 23:59·코테(Solved.ac + Programmers)
728x90

🔗 문제 링크

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


📌 문제 개요

10개의 버섯 점수가 순서대로 주어진다.

마리오는 버섯을 순서대로 먹으며 점수를 얻고, 목표 점수인 100에 가장 가까운 점수를 만들어야 한다.

만약 100과의 차이가 같은 경우에는 더 큰 점수를 출력

 


📌 접근 방법

버섯은 주어진 순서대로만 먹을 수 있으므로, 앞에서부터 점수를 계속 더한 누적합을 확인하면 된다.

각 단계마다 현재 누적합이 기존 정답보다 100에 더 가까운지 비교한다.


📌 핵심 아이디어

기준 점수는 100이다.

현재 누적합과 정답 후보의 차이를 비교한다.

Math.abs(100 - sum)
 

차이가 더 작으면 정답을 갱신하고, 차이가 같다면 더 큰 값을 선택

 


📌 전체 코드

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;
        int answer = 0;

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

            int currentDiff = Math.abs(100 - sum);
            int answerDiff = Math.abs(100 - answer);

            if (currentDiff < answerDiff) {
                answer = sum;
            } else if (currentDiff == answerDiff && sum > answer) {
                answer = sum;
            }
        }

        System.out.println(answer);
    }
}

📄 정리

  • 이 문제는 10개의 점수만 확인하면 되기 때문에 복잡한 알고리즘이 필요하지 않다.
  • 순서대로 누적합을 구하면서 100과의 거리를 비교하면 된다.
  • 동점일 경우 더 큰 점수를 선택해야 한다는 조건만 주의
728x90

'코테(Solved.ac + Programmers)' 카테고리의 다른 글

백준 9461번 : 파도반 수열 (JAVA)  (0) 2026.04.27
백준 9654번 : 나부 함대 데이터 (JAVA)  (0) 2026.04.26
백준 4008 특공대 JAVA 풀이 (DP, CHT, 누적합, 시간복잡도)  (0) 2026.04.24
백준 11444 피보나치 수 6 JAVA 풀이 (행렬 거듭제곱, 분할정복, 시간복잡도)  (0) 2026.04.24
백준 1149 RGB 거리 JAVA 풀이 (DP, 누적 최소값, 시간복잡도)  (0) 2026.04.24
'코테(Solved.ac + Programmers)' 카테고리의 다른 글
  • 백준 9461번 : 파도반 수열 (JAVA)
  • 백준 9654번 : 나부 함대 데이터 (JAVA)
  • 백준 4008 특공대 JAVA 풀이 (DP, CHT, 누적합, 시간복잡도)
  • 백준 11444 피보나치 수 6 JAVA 풀이 (행렬 거듭제곱, 분할정복, 시간복잡도)
PUSH → MERGE → DEPLOY
PUSH → MERGE → DEPLOY
데이터 흐름과 운영 자동화를 설계하는 백엔드 개발자
  • PUSH → MERGE → DEPLOY
    Coding Dongin
    PUSH → MERGE → DEPLOY
  • 전체
    오늘
    어제
    • MEUN
      • 코테(Solved.ac + Programmers)
      • BootCamp(JAVA)
      • JAVA
      • SpringBoot
      • JavaScript
      • JSP
      • DB(SQL)
      • React
      • HTML_CSS
      • jQuery
      • SCSS
      • GSAP
      • 설치 + 꿀팁
      • 정보처리기사 오답노트
      • 정보처리기사 기출문제
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GIT
  • 공지사항

  • 인기 글

  • 태그

    실기
    Level2
    정처기오답노트
    기출문제
    프로그래머스
    알고리즘
    정보처리기사 실기 기출문제
    springboot
    level0
    정보처리기사
    solved.ac
    수학
    dp
    정처기실기
    정처기
    java
    level1
    자료구조
    피보나치
    완전탐색
    정렬
    배열
    브루트포스
    백준
    코딩테스트
    백엔드개발자
    시뮬레이션
    구현
    자바
    문자열
  • 최근 댓글

  • 최근 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.4
PUSH → MERGE → DEPLOY
백준 [2851] 슈퍼 마리오 JAVA 풀이 (브루트포스, 누적합)
상단으로

티스토리툴바