티스토리 뷰
문제 설명이 애매하다..!
풀이는 간단하다
1. 입력받은 인용수를 배열에 넣고 정렬시킨다.
2. 0~10000까지를 다 돌아보며 k를 정해준다
3. k의 lower_bound부터 upper_bound까지가 확인 해 줄 범위다
왜냐하면 k의 lower_bound 부터 upper_bound 이전까지는 k번 이하를 만족한다!
4. 범위를 돌며 k이상 인용한게 k와 같은지 확인한다
소스코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | #include <iostream> #include <algorithm> using namespace std; int n; int arr[1010]; int main() { scanf(" %d", &n); for (int i = 0; i < n; i++) scanf(" %d", &arr[i]); sort(arr, arr + n); for (int i = 0; i <= 10000; i++) { auto a = lower_bound(arr, arr + n, i) - arr; auto b = upper_bound(arr, arr + n, i) - arr; for (int j = a; j <= b; j++) { if (j > n) continue; if (i == n - j) { printf("%d\n", i); return 0; } } } } | cs |
'알고리즘 > BOJ' 카테고리의 다른 글
[백준] 4256 트리 (0) | 2018.05.15 |
---|---|
[백준] 5639 이진 검색 트리 (0) | 2018.05.14 |
[백준] 1535 안녕 (0) | 2018.05.13 |
[백준] 1874 스택수열 (0) | 2018.05.13 |
[백준] 1269 대칭차집합 (0) | 2018.05.13 |
댓글