코딩 문제풀이/백준

백준 2851. 슈퍼마리오

배3 2025. 6. 23. 02:04

[문제]

유형: 구현/브루트포스/누적합

언어: C++

난이도: 브1

사이트: https://www.acmicpc.net/problem/2851


[리뷰]

쟁점: none

난이도 상당히 쉽다.

버섯을 먹으면서 100점 이상이 되면 멈추도록 한다.

100점을 넘기 직전 점수와, 넘긴 직후 점수 중 100점에 가까운 것을 찾으면 된다.

 

학습 내용.

케이스가 하나뿐이라면, 입력을 다 받지 않아도 가능하다.

처음엔 배열에 입력을 모두 받고 연산했는데, 이후에 입력을 받으면서 합이 100을 넘기면 바로 끝나도 정답 처리됐다.

 

해답.

(현재 누적합 - 100) > (100 - 직전 누적합) 이면 '직전 누적합' 출력

그 외엔 '현재 누적합' 출력 → 차이가 같은 경우도 포함된다.

 

[코드]

// p2851. 슈퍼 마리오
#pragma warning(disable:4996)
#include <iostream>
using namespace std;

int ans;
int main(void)
{
	int score;
	for (int i = 0; i < 10; ++i)
	{
		if (ans >= 100)	break;
		cin >> score;
		ans += score;
	}
	if (ans - 100 > 100 - (ans - score))	ans -= score;
	cout << ans;
	
	return 0;
}

'코딩 문제풀이 > 백준' 카테고리의 다른 글

백준 1531. 투명  (0) 2025.06.23
백준 8320. 직사각형을 만드는 방법  (0) 2025.06.23
백준 14470. 전자레인지  (0) 2025.06.22