[프로그래머스] H-Index
[프로그래머스] H-Index
▪︎ 문제
▪︎ 알고리즘 설계
- 먼저 인용된 수를 정렬한 다음 하나하나 조건문을 통해 h번 이상 인용됐는 지 확인한다.
- h번 이상 인용된 논문의 수를 세기 위해 count++ 해준다.
- 그 다음, 전체 count의 수가 h번 이상이라면, h의 최댓값을 찾기 위해 h 값을 1씩 늘려준다. 그리고 다시 반복 ..
- 만약 count < h인 순간이 된다면, 이전 단계까지가 h의 최댓값이였으므로 현재 h 값에서 1을 빼준 값을 return 한다.
▪︎ 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import java.util.*;
class Solution {
public int solution(int[] citations) {
int h = 0;
Arrays.sort(citations);
while (true) {
int count = 0;
for(int i = 0; i < citations.length; i++) {
if (citations[i] >= h) {
count++;
}
}
if (count >= h) {
h++;
} else {
return --h;
}
}
}
}
▪︎ 시간복잡도
O(n^2)
▪︎ 느낀점 / 기억할 정보
- 문제 조건을 잘 파악하는 연습을 하자!
- GPT 도움 없이 맞춰서 기분 좋당
This post is licensed under CC BY 4.0 by the author.