๐ [ํ๋ก๊ทธ๋๋จธ์ค ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด] 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;
}
}