Skip to main content
  1. Posts/
  2. Algorithm/

BOJ 2437 저울

·141 words·1 min
Jiho Kim
Author
Jiho Kim
달려 또 달려

📝 문제 정보
#

🧐 관찰 및 접근
#

  • $1, 2, 4, 8, 16, \cdots$의 추로 모든 양의 정수를 측정할 수 있음이 자명하다.
  • 이 이유를 살펴보면, $X$라는 무게의 추가 있을때, $X-1$까지의 모든 정수를 표현할 수 없다면 표현할 수 있는 최대치 + 1이 답이 된다.
  • 추를 작은것부터 정렬해서, 빠지는 수 없이 무슨 양의 정수까지 최대한 잴 수 있는지 확인하자.

💻 풀이
#

  • 코드 (C++):
void solve(){
    int N; cin >> N;
    vector<ll> v(N);
    rep(i, 0, N) cin >> v[i];
    sort(all(v));
    ll sum = 0;
    rep(i, 0, N){
        if(v[i] > sum + 1){
            cout << sum + 1 << "\n";
            return;
        }
        sum += v[i];
    }
    cout << sum + 1 << "\n";
}
🔒

구현 코드 잠금

아래 쿠팡 링크를 방문하시면 코드가 공개됩니다.
광고 수익이 블로그 운영에 도움이 됩니다 🙏

🛒 쿠팡 방문하고 코드 보기

방문 후 잠금이 자동으로 해제됩니다