https://school.programmers.co.kr/learn/courses/30/lessons/42747
어떤 과학자가 발표한 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다면 h의 최댓값이 이 과학자의 H-Index입니다.
조건은 이런데, h번 이상 인용된 논문이 h편 이상까지만 이해하면 된다.
HashMap을 이용하여 citations의 값을 1씩 줄여가며 key로 하여 map에 넣어주어 개수를 구했다.
그리고 value가 key보다 크거나 같다면 해당 key를 정답으로 제출하였다.
import java.util.HashMap;
class Solution {
public int solution(int[] citations) {
int answer = 0;
HashMap<Integer, Integer> map = new HashMap<>();
for (int i = 0; i < citations.length; i++) {
for (int j = citations[i]; j >= 0; j--) {
if (!map.containsKey(j)) {
map.put(j, map.getOrDefault(j, 0) + 1);
} else {
map.put(j, map.get(j) + 1);
}
}
}
for (int i = map.size() - 1; i >= 0; i--) {
if (i <= map.get(i)) {
answer = i;
break;
}
}
return answer;
}
}
'Programmers' 카테고리의 다른 글
[프로그래머스][JAVA]Lv. 2 - 카펫 (0) | 2023.06.12 |
---|---|
[프로그래머스][JAVA]Lv. 2 - 소수 찾기 (0) | 2023.06.12 |
[프로그래머스][JAVA]Lv. 2 - 더 맵게 (0) | 2023.05.18 |
[프로그래머스][JAVA]Lv. 2 - 프로세스 (0) | 2023.05.17 |
[프로그래머스][JAVA]Lv. 2 - 기능개발 (0) | 2023.05.16 |