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

BOJ 14464 소가 길을 건너간 이유 4

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

📝 문제 정보
#

🧐 관찰 및 접근
#

  • 소에 대해서는 끝나는 시간이 가장 빠른 소를, 닭에 대해서는 가장 $T$가 빨리 오는 닭을 쓰는 그리디가 성립한다.
  • 이를 구현하는 방법은 여러가지가 있겠지만, 여기서는 multiset과 이분탐색을 이용하겠다.

💻 풀이
#

  • 코드 (C++):
void solve(){
    int C, N; cin >> C >> N;
    multiset<int> chicken;
    rep(i, 0, C){
        int x; cin >> x;
        chicken.insert(x);
    }
    vector<pii> cow(N);
    rep(i, 0, N) cin >> cow[i].first >> cow[i].second;
    sort(all(cow), [](pii a, pii b){
        return a.second < b.second;
    });

    int ans = 0;
    for(auto [s, e]: cow){
        auto it = chicken.lower_bound(s);
        if(it != chicken.end() && *it <= e){
            ans++;
            chicken.erase(it);
        }
    }
    cout << ans << '\n';
}
🔒

구현 코드 잠금

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

🛒 쿠팡 방문하고 코드 보기

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