티스토리 뷰
[ 프로그래머스 ] H-Index (java)
H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다.
어떤 과학자가 발표한 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다면 h가 이 과학자의 H-Index입니다.
어떤 과학자가 발표한 논문의 인용 횟수를 담은 배열 citations가 매개변수로 주어질 때, 이 과학자의 H-Index를 return 하도록 solution 함수를 작성해주세요.
제한사항
과학자가 발표한 논문의 수는 1편 이상 1,000편 이하입니다.
논문별 인용 횟수는 0회 이상 10,000회 이하입니다.
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/courses/30/lessons/42747
핵심
문제 이해하는데 어려웠던 문제
'h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용'
1. 나머지 논문은 ~ 부분은 앞 부분에서 처리되서 굳이 신경안써도 되는 부분.
2. h번 이상 인용된 논문이 h편 이상, 이 부분을 이해 못 했다.
앞 뒤에 'h번 이상' 중 하나를 기준으로 잡아야 한다고 생각했지만 그게 틀렸음
인용 횟수 [0, 1, 3, 5, 6 ]
0번 이상 인용된 논문은 5편 이상이다. => H Index는 0
1번 이상 인용된 논문은 4편 이상이다. => H Index는 1
3번 이상 인용된 논문은 3편 이상이다. => H Index는 3
5번 이상 인용된 논문은 2편 이상이다. => H Index는 2
6번 이상 인용된 논문은 1편 이상이다. => H Index는 1
앞 뒤 'h번 이상'을 만족하는 h이어야 하므로, 앞 뒤 h 중 더 작은 h가 H Index가 된다.
또한, 문제에서 다른 설명은 없었지만 최대 h를 선택.
추가적으로 더 궁금한 점 있으면 댓글 달아주세요
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
import java.util.*;
class Solution {
public int solution(int[] citations) {
Arrays.sort(citations);
int ans = -1;
for(int i = 0 ; i < citations.length ;i++) {
ans = Math.max(ans, Math.min(citations[i], citations.length - i));
}
return ans;
}
}
|
cs |
'CS > 알고리즘 풀이' 카테고리의 다른 글
[ 프로그래머스 ] 큰 수 만들기 ( 자바) (0) | 2019.12.30 |
---|---|
[ 프로그래머스 ] 구명보트 ( 자바 ) (0) | 2019.12.28 |
[ 프로그래머스 2017 카카오코드 본선] 단체사진 찍기 (java) (5) | 2019.12.25 |
[ 백준 17779 ] 게리맨더링 2 (java) (0) | 2019.12.23 |
[프로그래머스] 점프와 순간 이동 ( java ) (0) | 2019.12.23 |
- Total
- Today
- Yesterday
- 주사위 윷놀이
- 후보키
- java
- 큰 수 만들기
- 2019 카카오 공채
- 오블완
- 프로그래머스
- 문자열을 정수로 바꾸기
- 2018 카카오 공채
- 가장 큰 정사각형 찾기
- 티스토리챌린지
- 17825
- 찾아라 프로그래밍 마에스터
- 카카오 2020 공채
- DP
- 백준
- 라면공장
- 124 나라의 숫자
- 게리맨더링 2
- 정수 내림차순으로 배치하기
- 카카오2020 공채
- 괄호 변환
- 단체사진 찍기
- programmers
- 자바
- Brainf**k 인터프리터
- 짝지어 제거하기
- 17779
- 투포인터
- 3954
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
26 | 27 | 28 | 29 | 30 | 31 |