본문 바로가기

문제풀기이야기

7795번_먹을 것인가 먹힐 것인가_BOJ

문제 링크

7795번 먹을 것인가 먹힐 것인가 : https://www.acmicpc.net/problem/7795




문제 설명 및 해결 아이디어

lower_bound를 이용하여 x라는 값을 찾으면, x보다 크거나 같은 값중 최소값의 위치를 return해준다. 이 아이디어를 이용하여 문제를 풀 수 있다.




코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <cstdio>
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
 
int t, n, m, num;
vector<int> avt, bvt;
int main() {
    scanf("%d"&t);
    while (t--) {
        scanf("%d %d"&n, &m);
        for (int i = 0; i < n; ++i) {
            scanf("%d"&num);
            avt.push_back(num);
        }
        for (int i = 0; i < m; ++i) {
            scanf("%d"&num);
            bvt.push_back(num);
        }
        sort(bvt.begin(), bvt.end());
 
        int res = 0;
        for (auto i : avt) {
            res += lower_bound(bvt.begin(), bvt.end(), i) - bvt.begin();
        }
        printf("%d\n", res);
        avt.clear(); bvt.clear();
    }
    return 0
}
cs


'문제풀기이야기' 카테고리의 다른 글

1940번_주몽  (0) 2018.07.17
3273번_두 수의 합_BOJ  (0) 2018.07.17
10815번_숫자카드_BOJ  (0) 2018.07.17
2110번_공유기 설치_BOJ  (0) 2018.07.16
1300번_K번째 수_BOJ  (0) 2018.07.16