BOJ 9414번 프로그래밍 대회 전용 부지 문제

크리스마스 기념 꿀잼꿀문입니다. 왜 틀렸는지 모르겠는데 3번이나 틀렸습니다. 왜 틀렸을까요 로직이 다 같았는데.. long long 으로 바꾼 뒤 맞은거 같네요.

9414.cpp

#include <bits/stdc++.h>
using namespace std;

long long power(int n, int x) {
    int result = 1;
    for (int i = 0; i < x; i++) {
        result *= n;
    }
    return result;
}

void solve() {
    int n;
    long long sum = 0;
    int size = 0;
    vector<int> v;
    while (true) {
        cin >> n;
        v.push_back(n);
        size++;
        if (n == 0) {
            break;
        }
    }
    sort(v.begin(), v.end());
    reverse(v.begin(), v.end());
    // 역순으로 정렬해서 비싼 땅을 먼저 산다.
    for (int i = 0; i < size; i++) {
        sum += 2 * (long long)power(v[i], i + 1);
    }
    if (sum >= 5000000) {
        cout << "Too expensive" << '\n';
    } else {
        cout << sum << '\n';
    }
}

int main() {
    int test;
    cin >> test;
    while (test--) {
        solve();
    }
}

+ Recent posts