카테고리 없음

[BOJ][C++] 백준 26091번: 현대모비스 소프트웨어 아카데미 (Silver I)

선달 2025. 5. 13. 01:53
반응형

문제


현대모비스에서 소프트웨어 아카데미 견학생을 모집한다고 한다. 이번 견학 활동은 모두 팀 단위로 진행되며 아래 두 조건을 모두 만족하는 팀만 소프트웨어 아카데미를 견학할 수 있다.
Sogang ICPC Team 학회원 $N$명이 견학을 희망한다. 학회장 동건이는 $N$명으로 최대한 많은 팀을 만들어 견학을 보내고 싶다. 동건이가 최대 몇 팀이나 견학 보낼 수 있을지 구해보자.

입력

첫째 줄에 견학을 희망하는 학회원의 수 $N$과 견학하는 팀의 최소 능력치를 나타내는 정수 $M$이 공백으로 구분되어 주어진다. ($1 \le N \le 100\,000$, $1 \le M \le 10^9$)
둘째 줄에 학회원 $N$명의 능력치를 나타내는 $N$개의 정수 $a_1,a_2, \cdots, a_N$이 공백으로 구분되어 주어진다. ($1 \le a_i \le 10^9$)

출력

첫째 줄에 동건이가 견학 보낼 수 있는 최대 팀 수를 출력한다.

 

풀이

// 풀이 : https://whkakrkr.tistory.com

#include <bits/stdc++.h>

using namespace std;

int main() {
    ios_base::sync_with_stdio(false);
	cout.tie(NULL);
	cin.tie(NULL);
	
	int n,m;
	cin >> n >> m;
	vector<int>a(n);
	for(int i=0; i<n; i++) {
	    cin >> a[i];
	}
	
	sort(a.begin(), a.end());
	
	int ans=0, left=0, right=n-1;
	while(left<right) {
	    if(a[left]+a[right] >= m) {
	        ans++;
	        left++;
	        right--;
	    } else {
	        left++;
	    }
	}
	
	cout << ans;

    return 0;
}

 

반응형