ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 백준 21820 Acowdemia I [C]
    알고리즘 2023. 1. 8. 20:39

    문제

    https://www.acmicpc.net/problem/21820

     

    21820번: Acowdemia I

    If Bessie cites her third paper, then the citation counts become $(1,100,3,3)$. As mentioned above, the $h$-index for these counts is $3$.

    www.acmicpc.net

     

    문제해설

    첫째줄에는 배시가 낸 논문의 갯수 N과 논문 인용 추가횟수 L이 주어지며, 둘째줄에는 논문마다 논문의 인용횟수가 입력이 된다. 연구자를 평가하는 H-Index 라는 지표가 있는데, 논문 H개가 H번 이상의 인용횟수가 있다면 배시의 H-Index는 H가 된다. 또, 배시 자기자신이 낸 논문중 L개만큼 최대 1번만큼 인용횟수를 추가할 수 있다. 예를 들어, 인용된 횟수가 1,100,2,3 인 논문 4개가 있다고 가정해보자. 이 경우에는 2개의 논문이 2번 이상이 인용되었기 때문에 H-Index는 2가 되고, 인용된 횟수가 1,100,3,3 인 논문 4개가 있다고 가정하면, 3개의 논문이 3번 이상 인용되었기 때문에 H-Index는 3이 되는 것이다. 배시의 최대 H-Index를 찾는 것이 문제이다. 

     

    풀이

    인용횟수로 오름차순으로 정렬을 하면, N-i 개만큼의 논문의 이용횟수가 i 번째 논문 인용횟수보다 많음을 보장할 수 있다. (0 <= i < N)

    이 때 세가지 경우로 나누어 생각해보면,

    1. N-i>=i 번째 논문 이용횟수라면, i번째 논문 이용횟수로 H-Index의 조건을 만족한다.

    2. N-i>=i 번째 논문 이용횟수 + 1이고 전체 논문 중 인용횟수가 i번째 논문 인용횟수와 같은 논문의 갯수가 L개 이하라면, i번째 논문 이용횟수 + 1로 H-Index의 조건을 만족한다. 

    3. i 번째 논문 인용횟수 >= N-i 라면, N-i 로 H-Index의 조건을 만족한다.

    전체 논문을 탐색해가며 3가지 경우중에 조건을 만족하는 가장 큰 H-Index값을 출력해주면 된다. 

     

    코드

    #include<stdio.h>
    #include<algorithm>
    
    #define LEN 210000
    using namespace std;
    
    int N, L, set[LEN], cnt[LEN];
    
    int main() {
        int i, ans = -1;
        scanf("%d %d", &N, &L);
        for (i = 0; i < N; i++) {
            scanf("%d", &set[i]);
            cnt[set[i]]++;
        }
        stable_sort(set, set + N);
        for (i = 0; i < N; i++) {
            if (set[i] >= N - i && ans < N - i) {
                ans = N - i;
            }
            if (N - i >= set[i] && ans < set[i]) {
                ans = set[i];
            }
            if (N - i >= set[i] + 1 && ans < set[i] + 1 && L >= cnt[set[i]]) {
                ans = set[i] + 1;
            }
            cnt[set[i]]--;
        }
        printf("%d", ans);
        return 0;
    }

    '알고리즘' 카테고리의 다른 글

    백준 20974 Even More Odd Photos [C]  (1) 2023.01.14
    백준 20973 Uddered but not Herd [C]  (0) 2023.01.14
    백준 14889 스타트와 링크 [C]  (0) 2023.01.08
    백준 20652 Stuck in a Rut [C]  (0) 2023.01.07
    백준 20651 Daisy Chains [C]  (0) 2023.01.07

    댓글

Designed by Tistory.