๐Ÿ“– [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด] level2 ์ •๋ ฌ H-Index ๋ฌธ์ œ ํ’€์ด

๐Ÿ“– ๋ฌธ์ œ

https://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 ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.

๐Ÿ” ์ ‘๊ทผ๋ฒ•

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

H-Index ๋ผ๋Š” ๊ฒƒ์„ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

๋ฌธ์ œ ์„ค๋ช…์„ ์ž˜ ์ฝ๊ณ  ํ’€์ดํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

๋ฌธ์ œ ๊ทธ๋Œ€๋กœ nํŽธ ์ค‘, h๋ฒˆ ์ด์ƒ ์ธ์šฉ๋œ ๋…ผ๋ฌธ์ด hํŽธ ์ด์ƒ์ด๊ณ  ๋‚˜๋จธ์ง€ ๋…ผ๋ฌธ์ด h๋ฒˆ ์ดํ•˜ ์ธ์šฉ๋˜์—ˆ์„ ๊ฒฝ์šฐ h์˜ ์ตœ๋Œ“๊ฐ’์„ ๊ตฌํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ h๋ฒˆ ์ด์ƒ ๋œ ๋…ผ๋ฌธ๋งŒ์„ ํ™•์ธํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๋‚˜๋จธ์ง€ ๋…ผ๋ฌธ์€ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ h๋ฒˆ ์ดํ•˜๋กœ ๋…ผ๋ฌธ ์ธ์šฉ์ด ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ณ ๋ คํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋…ผ๋ฌธ์˜ ์ธ์šฉ ํšŸ์ˆ˜๋ฅผ ์ •๋ ฌํ•œ ํ›„ ๋งŽ์ด ์ธ์šฉ ๋œ ํšŸ์ˆ˜์˜ ๋…ผ๋ฌธ๋ถ€ํ„ฐ ํ™•์ธํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์œ„์—์„œ ๋งํ–ˆ๋˜ ๊ฒƒ์ฒ˜๋Ÿผ ์ธ์šฉ์ด h๋ฒˆ ์ด์ƒ ๋œ ๋…ผ๋ฌธ๊นŒ์ง€๋งŒ ํ™•์ธ์„ ํ•˜์—ฌ ๊ทธ ์ค‘ h๋ฒˆ ์ด์ƒ ๋œ ๋…ผ๋ฌธ์ด hํŽธ ์ด์ƒ์ธ h ๊ฐ’ ๋“ค ์ค‘์—์„œ ์ตœ๋Œ€๊ฐ’์„ ๊ตฌํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

๐Ÿ’ป ์ฝ”๋“œ

import java.util.*;
class Solution {
    public int solution(int[] citations) {
        int answer = 0;
        int max = 0;
        
        Arrays.sort(citations);
        for(int h=0; h<citations[citations.length-1]; h++){
            int count =0;
            for(int j=citations.length-1; j>=0; j--){
                if(citations[j] >= h){
                    count++;
                }
                else{
                    break;
                }
            }
            if(count>=h){
                max = Math.max(max,h);
            }
        }
        return max;
    }
}

Written on January 13, 2021