연속으로 버섯을 먹어야 한다.
점수를 입력 받음과 동시에 100점을 넘는지 확인하고, 100을 넘는다면 총합을 더이상 총합을 구하지 않는다.
또한, 지금의 인덱스 위치를 저장해둔다. 100점을 기준으로 앞 뒤 인덱스에 해당하는 값을 기억해둬야 하기 때문이다.
마지막으로 저장한 인덱스 위치까지 더하면 총합은 100이 넘는 상태일 것이다.
저장해둔 인덱스 위치를 활용한다. 지금까지의 총합과 이전 총합을 비교하여 100에 더 가까운 값을 출력한다.
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[] arr = new int[10];
int sum=0, index=0;
for(int i=0; i<10; i++) {
int a = Integer.parseInt(br.readLine());
arr[i] = a;
if(sum <= 100) {
sum+=arr[i];
index = i;
}
}
if(Math.abs(100-(sum-arr[index])) < Math.abs(100-sum)) {
sum = sum-arr[index];
}
System.out.println(sum);
}
}
https://www.acmicpc.net/problem/2851
'CODING > BAEKJOON' 카테고리의 다른 글
[BAEKJOON] 4344번 평균은 넘겠지 (0) | 2022.01.24 |
---|---|
[BAEKJOON] 2167번 2차원 배열의 합 (0) | 2022.01.24 |
[BAEKJOON] 2577번 숫자의 개수 (0) | 2022.01.24 |
[BAEKJOON] 8958번 OX퀴즈 (0) | 2022.01.24 |
[BAEKJOON] 1152번 단어의 개수 (0) | 2022.01.24 |
댓글