주녘공부일지

[프로그래머스 C#] Lv.2 H-Index 본문

Programmers - C#/CodingTest Lv.2

[프로그래머스 C#] Lv.2 H-Index

주녘 2023. 12. 6. 14:20
728x90

https://school.programmers.co.kr/learn/courses/30/lessons/42747

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

1. 정답코드 및 핵심 아이디어, 유의사항

배열을 내림차순으로 정렬해서 0번 인덱스부터 확인하면, 지나온 논문 인용 값들은 현재 체크 중인 값보다 무조건 크거나 같기 때문에 인덱스 + 1은 인용된 논문의 수가 됨

-> 즉, 현재 체크 중인 인덱스에 따른 배열 안의 값이 인덱스 + 1의 값보다 작거나 같다면 H-Index를 찾은 것

 ( 현재 체크되는 논문의 인용된 수 <= 체크중인 논문보다 인용된 논문의 수가 크거나 같은 수 )

 

주석 참조

    using System;

    public class Solution
    {
        public int solution(int[] citations)
        {
            // 배열을 내림차순 정렬
            Array.Sort(citations);
            Array.Reverse(citations);

            // 가장 큰 값부터 확인해 H-Index를 찾음
            for (int i = 0; i < citations.Length; i++)
                if (citations[i] <= i + 1)
                    return (citations[i] > i) ? citations[i] : i; // 더 큰 값을 리턴

            return citations.Length;
        }
    }
728x90