[Java] 백준 2851번 문제 (슈퍼마리오)자료구조 & 알고리즘/BOJ2023. 10. 29. 12:32
Table of Contents
문제설명
소스코드
import java.util.Scanner;
public class Main
{
public static void main(String[] args) throws Exception
{
Scanner sc = new Scanner(System.in);
int arr[] = new int[10];
int sum = 0;
for(int i = 0; i < 10; ++i) arr[i] = sc.nextInt();
for(int i = 0; i < 10; ++i)
{
int temp = sum;
sum += arr[i];
if(sum > 100)
{
if(Math.abs(100-temp) >= Math.abs(100-sum)) System.out.print(sum);
else System.out.print(temp);
System.exit(0);
}
}
System.out.print(sum);
}
}
설명
- 루프를 돌 때마다 버섯의 점수를 더하기 전 누적합과 버섯의 점수를 더한 후 누적합을 저장한다.
더하기 전 누적합은 temp에 임시로 저장한 후 sum에 추가적인 버섯의 점수를 더한 누적합을 구한다. - 만약 sum이 100 초과라면
|100-temp| 값과 |100-sum| 중 |100-temp|이 크거나 같다면 sum이 정답이다.
반대로 |100-temp|이 작다면 temp가 정답이다. - 루프가 종료된 이후까지 sum이 100 이하라면, sum을 출력한다.
'자료구조 & 알고리즘 > BOJ' 카테고리의 다른 글
[Java] 백준 2606번 문제 (바이러스) (0) | 2023.11.17 |
---|---|
[Java] 백준 1260번 문제 (DFS와 BFS) (0) | 2023.11.17 |
[Java] 백준 11286번 문제 (절댓값 힙) (0) | 2023.10.23 |
[Java] 백준 11279번 문제 (최대 힙) (0) | 2023.10.22 |
[Java] 백준 1927번 문제 (최소 힙) (0) | 2023.10.22 |