BOJ 2851번 슈퍼마리오 문제

특별한 알고리즘이 필요한게 아닌 구현 문제이다.

첫번째 버섯부터 무조건 먹는건데 중간에 왜 갑자기 생각을 잘못했는지 중간부터 먹을 수 있게 구현해서 계속 틀려버렸다.

일단 배열에 10개 입력을 받는다.

하나 하나 더해가면서, 100이 넘는 경우에 100에 더하기 전이 가까운지 더한 후가 가까운지 조건을 주고 더 작은 값을 출력한다. 만약 같다면 더한 숫자를 골라야한다.

2851.cpp

#include <iostream>
using namespace std;
int main() {
    int a[10];
    for (int i = 0; i < 10; i++) {
        cin >> a[i];
    }
    int sum = 0;
    for (int i = 0; i < 10; i++) {
        int afterSum = sum + a[i];
        if (afterSum >= 100) {
            if (afterSum - 100 <= 100 - sum) {
                cout << afterSum;
            } else {
                cout << sum;
            }
            return 0;
        }
        sum = afterSum;
    }
    cout << sum;
}

'알고리즘 & SQL > 백준(BOJ)' 카테고리의 다른 글

백준 14753번 : MultiMax C++  (0) 2018.11.02
백준 9086번 : 문자열 C++  (0) 2018.11.02
백준 1427번 : 소트인사이드 C++  (0) 2018.11.02
백준 2998번 : 8진수 C++  (0) 2018.10.31
백준 10987번 : 단위 C++  (0) 2018.10.30

+ Recent posts