[문제]
유형: 구현/브루트포스/누적합
언어: 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 |