๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Algorithm ๐Ÿง‘๐Ÿป‍๐Ÿ’ป/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค(Programmers)

[c++] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - H-Index ( Level 2 )

by ์•ˆ์ฃผํ˜• 2021. 10. 19.
 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - H-Index

H-Index๋Š” ๊ณผํ•™์ž์˜ ์ƒ์‚ฐ์„ฑ๊ณผ ์˜ํ–ฅ๋ ฅ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ง€ํ‘œ์ž…๋‹ˆ๋‹ค. ์–ด๋Š ๊ณผํ•™์ž์˜ H-Index๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐ’์ธ h๋ฅผ ๊ตฌํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์œ„ํ‚ค๋ฐฑ๊ณผ1์— ๋”ฐ๋ฅด๋ฉด, H-Index๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌํ•ฉ๋‹ˆ๋‹ค. ์–ด๋–ค ๊ณผํ•™์ž๊ฐ€ ๋ฐœํ‘œ

programmers.co.kr

 

#include <string>
#include <vector>
#include <algorithm>


using namespace std;

struct info{
    int h_index;
    int min_cnt;
    int max_cnt;
};

int solution(vector<int> citations) {
    int answer = 0;
    vector<info>vec;

    sort(citations.begin(),citations.end());    

    int max_h=citations.back();

    for(int i=0; i<citations.size(); i++){
        vec.push_back({citations[i],i+1,(int)citations.size()-i});
    }    

    for(int i=0; i<max_h; i++){
        for(int k=0; k<vec.size(); k++){
            if(vec[k].h_index>=i&&vec[k].max_cnt>=i&&vec[k].min_cnt<=i) answer=max(answer,i);
        }
    }


    return answer;
}

๋Œ“๊ธ€