๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ“ ์•Œ๊ณ ๋ฆฌ์ฆ˜/Programmers

[C++/PGS] Lv.2 : H-index (์ •๋ ฌ)

https://school.programmers.co.kr/learn/courses/30/lessons/42747#

 

๋ฌธ์ œ ์„ค๋ช…

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

์–ด๋–ค ๊ณผํ•™์ž๊ฐ€ ๋ฐœํ‘œํ•œ ๋…ผ๋ฌธ nํŽธ ์ค‘, h๋ฒˆ ์ด์ƒ ์ธ์šฉ๋œ ๋…ผ๋ฌธ์ด hํŽธ ์ด์ƒ์ด๊ณ  ๋‚˜๋จธ์ง€ ๋…ผ๋ฌธ์ด h๋ฒˆ ์ดํ•˜ ์ธ์šฉ๋˜์—ˆ๋‹ค๋ฉด h์˜ ์ตœ๋Œ“๊ฐ’์ด ์ด ๊ณผํ•™์ž์˜ H-Index์ž…๋‹ˆ๋‹ค.

์–ด๋–ค ๊ณผํ•™์ž๊ฐ€ ๋ฐœํ‘œํ•œ ๋…ผ๋ฌธ์˜ ์ธ์šฉ ํšŸ์ˆ˜๋ฅผ ๋‹ด์€ ๋ฐฐ์—ด citations๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ์ด ๊ณผํ•™์ž์˜ H-Index๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.

 

์ œํ•œ์‚ฌํ•ญ
  • ๊ณผํ•™์ž๊ฐ€ ๋ฐœํ‘œํ•œ ๋…ผ๋ฌธ์˜ ์ˆ˜๋Š” 1ํŽธ ์ด์ƒ 1,000ํŽธ ์ดํ•˜์ž…๋‹ˆ๋‹ค.
  • ๋…ผ๋ฌธ๋ณ„ ์ธ์šฉ ํšŸ์ˆ˜๋Š” 0ํšŒ ์ด์ƒ 10,000ํšŒ ์ดํ•˜์ž…๋‹ˆ๋‹ค.

 

๋ฌธ์ œ ์„ค๋ช…์ด ์ข€ ์š”์ƒํ–ˆ๋Š”๋ฐ ๋‚˜๋ฆ„๋Œ€๋กœ ์ดํ•ดํ•ด์„œ ํ’€์–ด๋ƒˆ๋‹ค.

์ฒ˜์Œ์— h ๋ฐ˜๋ณต๋ฌธ์„ for(int h=0; h<citations.size(); ++h) ๋กœ ํ–ˆ๋‹ค๊ฐ€ ๋ช‡๊ฐœ ํ‹€๋ฆฌ๊ธธ๋ž˜ ๋ญ๊ฐ€ ๋ฌธ์ œ์ผ๊นŒ ํ–ˆ๋Š”๋ฐ,

์•Œ๊ณ ๋ณด๋‹ˆ.. h๋Š” citations.size()๋ž‘ ์ƒ๊ด€์—†์ด ๊ทธ๋ƒฅ ์ปค์ง€๋Š”๋Œ€๋กœ ์ปค์ ธ์•ผ ํ•˜๋Š” ๊ฑฐ์˜€์Œ

๊ทธ๋ž˜์„œ ์กฐ๊ฑด ์ตœ๋Œ€๋ฒ”์œ„๋กœ ์„ค์ •ํ•ด์ฃผ๋‹ˆ ์ •๋‹ต! 

 

 

 

๋‚˜์˜ ํ’€์ด

#include <string>
#include <vector>
#include <algorithm>
using namespace std;

int solution(vector<int> citations) {
    int answer = 0;
    int cnt=0;
    sort(citations.begin(), citations.end());
    // for(int h=0; h<citations.size(); ++h){
    for(int h=0; h<10001; ++h){
        for(int i=0; i<citations.size(); ++i){
            if(citations[i] >= h) cnt++;
        }
        if(cnt < h) {
            answer = h-1;
            break;
        }
        cnt=0;
    }
    return answer;
}