본문 바로가기
CODING/BAEKJOON

[BAEKJOON] 2851번 슈퍼 마리오

by snow_white 2022. 1. 24.

연속으로 버섯을 먹어야 한다.

점수를 입력 받음과 동시에 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

 

2167번: 2차원 배열의 합

첫째 줄에 배열의 크기 N, M(1 ≤ N, M ≤ 300)이 주어진다. 다음 N개의 줄에는 M개의 정수로 배열이 주어진다. 배열에 포함되어 있는 수는 절댓값이 10,000보다 작거나 같은 정수이다. 그 다음 줄에는

www.acmicpc.net

 

'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

댓글