문제 출처 - Programmers
문제는 여기
[풀이]
1. 입력으로 들어오는 논문의 인용 횟수를 정렬해준다.
2. 현재 논문부터 마지막 논문까지의 개수를 구한다.
3. 현재 논문의 인용 횟수보다 2. 에서 구한 개수가 작거나 같으면 answer을 2. 에서 구한 값으로 넣어주고 break 한다.
4. 아니라면 2.부터 반복한다.
5. 결과를 출력한다.
[접근]
1. 입력으로 들어오는 논문을 오름차순으로 정렬한 후 인용된 횟수와 남은 논문의 인용 횟수를 비교하면 되겠다고 생각하였다.
[코드]
import java.util.*;
class Solution {
public int solution(int[] citations) {
int answer = 0;
// 오름차순 정렬
Arrays.sort(citations);
for(int i = 0; i < citations.length; i++) {
// 현재 논문부터 마지막까지의 논문 개수
int h = citations.length - i;
// h가 현재 논문의 인용된 횟수보다 작거나 같으면
if (citations[i] >= h) {
answer = h;
break;
}
}
return answer;
}
}
'문제 풀이 > Programmers' 카테고리의 다른 글
[프로그래머스] 가운데 글자 가져오기 (JAVA) (0) | 2022.04.04 |
---|---|
[프로그래머스] 같은 숫자는 싫어 (JAVA) (0) | 2022.04.02 |
[프로그래머스] 주식가격 (JAVA) (0) | 2022.03.31 |
[프로그래머스] N으로 표현 (0) | 2022.03.30 |
[프로그래머스] 조이스틱 (JAVA) (0) | 2022.03.29 |