Arrays.sort를 이용해서 정렬 후 최대값을 리턴할 수 있습니다.
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){ // 조건 확인: 인용 수가 h 이상인 논문이 h편 이상
answer = h;
break;
}
}
return answer;
}
}
citations를 정렬하면 [0, 1, 3, 5, 6]이 됩니다.
해당 논문 인용 횟수 (citations[i]) | h | h회 이상 인용된 논문 편수가 h편 이상이다. (true/false) |
0 | 5 | 5회 이상 인용된 논문 편수가 5편 이상이다. false (0편) |
1 | 4 | 4회 이상 인용된 논문 편수가 4편 이상이다. false (1편) |
3 | 3 | 3회 이상 인용된 논문 편수가 3편 이상이다. true (3편) |
5 | 2 | 2회 이상 인용된 논문 편수가 2편 이상이다. true (5편) |
6 | 1 | 1회 이상 인용된 논문 편수가 1편 이상이다. true (6편) |
따라서 정답은 3이 됩니다.
.
.
.
문제는 아래에서 확인할 수 있습니다.
https://school.programmers.co.kr/learn/courses/30/lessons/42747
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
'Algorithm > Programmers' 카테고리의 다른 글
[프로그래머스_JAVA_알고리즘] 의상 #해시 (1) | 2024.11.03 |
---|---|
[프로그래머스_JAVA_알고리즘] 문자열 정렬하기 (2) #정렬 (1) | 2024.11.02 |
[프로그래머스_JAVA_알고리즘] 가장 큰 수 #정렬 (1) | 2024.10.31 |
[프로그래머스_JAVA_알고리즘] 전화번호 목록 #해시 (1) | 2024.10.26 |
[프로그래머스_JAVA_알고리즘] 주사위의 개수 #해시 (0) | 2024.10.24 |