2019-03-26

프로그래머스 알고리즘, H-index

목표 (문제)

int 배열값 들을 H라고 하고 전체 배열에서 조건에 해당되는 배열값의 갯수가 n이라고 할때, n값의 최대를 구하시요.

조건

  • H는 n 이상
  • n의 값은 1 ~ 1,000
  • H의 값은 0 ~ 10,000

코드

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class Main {

    public static void main(String[] args) {
//        int[] numbers = { 3, 0, 6, 1, 5 };
//        int[] numbers = { 0, 0, 0 };
        int[] numbers = { 22, 42 };

        System.out.println(solution(numbers));
    }

    public static int[] solution(int[] citations) {
        int answer = 0;

        //정렬위해 List 변환
        List<Integer> list = Arrays.stream(citations).boxed().collect(Collectors.toList());
        //정렬
        Collections.sort(list, Collections.reverseOrder());
        
        //X의 값이 H를 넘지않는 범위에서 순회
        for(Integer citation : list) {
            if (answer < citation) {
                answer++;
            } else {
                break;
            }
        }
        
        return answer;
    }
}

잡설

 boxed() 메서드는 int, long, double 요소를 Integer, Long, Double 요소로 변환하여 저장

0 개의 댓글:

댓글 쓰기