문제
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
풀이
1. 주어진 인용 수들을 담은 배열에서 최대 인용 수를 구한다.
2. 최댓값에서 1씩 감소하는 for문을 수행하면서, 인용된 횟수와 인용이 되지 않은 횟수를 구한다.
3. H-Index(h번 인용된 논문이 h편 이상 + 나머지 논문이 h번 이하 인용)이면 바로 for문을 빠져나와서 그 값을 리턴한다.
소스코드
import java.util.Arrays;
class Solution {
public int solution(int[] citations) {
int max = Integer.MIN_VALUE;
for (int cnt : citations) {
max = Math.max(max, cnt);
}
int answer = -1;
for (int h = max; h >= 0; h--) {
int isRead = 0;
for (int readCnt : citations) {
if (readCnt >= h) {
isRead += 1;
}
}
int unRead = citations.length - isRead;
if (isRead >= h && unRead <= h) {
answer = h;
break;
}
}
return answer;
}
}'Problem Solving > Programmers' 카테고리의 다른 글
| [Programmers] 지폐 접기 - Java (0) | 2025.06.04 |
|---|---|
| [Programmers] 왼쪽 오른쪽 - Java (0) | 2025.06.03 |
| [Programmers] 붕대 감기 - Java (0) | 2025.05.29 |
| [Programmers] 배열 만들기 2 - Java (0) | 2025.05.13 |
| [Programmers] 코드 처리하기 - Java (0) | 2025.05.11 |