반응형
1. 2851번 슈퍼마리오 - 문제 해석 (생각의 흐름)
2. 자바 코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 10개버섯 -> 점수
//버섯을 순서대로 먹어야함 -> 중간에 멈출 수 있음
//첫번째 버섯 안먹을 수 있음
//점수는 100보다 작거나 같음
//1. 버섯의 점수 입력 받기
int[] score = new int[10];
for(int i=0;i<10;i++) {
score[i]=sc.nextInt();
}
//2. 최대한 100에 가깝게 점수 만들기
//결과는 98 102가 있다면 큰 값 선택
//case1.100보다 커지면 멈추기
//case2. 100보다 커져도 1번 먹어보고 이전 값과 차이 비교
int result=0;
int result_idx=0;
//while로 하면 모두 0 00 0 0 받을 때 못나옴
for(int i=0;i<10;i++) {
result+=score[i];
if(result>=100) {
result_idx=i;
break;
}
}//100이거나 100보다 큰 상태로 나온다.
if(result==100) System.out.println(100);
else {
//100보다 큰 상태일 경우 바로 전단계 계산 값 빼주기
int result_before = result-score[result_idx];
//result_after와 result 를 100과 차이가 같은지 확인
//같다면 큰 값 선택
int result1 = -(100-result); //result는 100보다 큰 상태
int result2 = 100-result_before; //result_before 100보다 작은 값
if(result1==result2) System.out.println(result);
else if(result1<result2) System.out.println(result);//result1이 100과 차이가작다.
else System.out.println(result_before);
}
}
}
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[깊이우선탐색] 백준 2668번 숫자고르기 - JAVA (0) | 2023.04.08 |
---|---|
[너비우선탐색] 백준 10026번 적록색약 - JAVA (0) | 2023.04.05 |
[브루트포스 알고리즘] 2798번 블랙잭 (0) | 2023.02.14 |
[그리디 알고리즘-Java] 5585번 거스름돈 (0) | 2023.01.31 |
[그리디 알고리즘-Java] 1541번 잃어버린 괄호 (0) | 2023.01.30 |