ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/JAVA] H-Index
    Algorithm/Java 2025. 1. 24. 20:39


     

     

    ๐Ÿ“Œ ๋ฌธ์ œ ์š”์•ฝ 


    [ ์˜ค๋‹ต ๋…ธํŠธ ]

    โŒ ๊ธฐ์กด ์˜ค๋‹ต ์ฝ”๋“œ

    import java.util.*;
    
    class Solution {
        public int solution(int[] citations) {
            int answer = 0;
    
            // 1. ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ
            Arrays.sort(citations);
    
            // 2. ๋ฐ˜๋ณต ํšŸ์ˆ˜ ์„ธ๋Š” ๋ฐ˜๋ณต๋ฌธ
            for (int j = 0; j < citations.length; j++) {
                int up = 0, down = 0;
    
                if (citations[j] > j) {
                    up++;
                } else if (citations[j] < j) {
                    down++;
                }
    
                if (up == down) {
                    answer++;
                    break;
                }
            }
    
            return answer;
        }
    }



    ๐Ÿ“Œ ๊ธฐ์กด ์ฝ”๋“œ์˜ ๋ฌธ์ œ์ 

     

    - ๋ฌธ์ œ ์กฐ๊ฑด ์ž˜๋ชป ์ดํ•ด

    • "h๋ฒˆ ์ด์ƒ ์ธ์šฉ๋œ ๋…ผ๋ฌธ์ด hํŽธ ์ด์ƒ์ด๊ณ  ๋‚˜๋จธ์ง€ ๋…ผ๋ฌธ์ด h๋ฒˆ ์ดํ•˜ ์ธ์šฉ๋˜์—ˆ๋‹ค๋ฉด h์˜ ์ตœ๋Œ“๊ฐ’์ด ์ด ๊ณผํ•™์ž์˜ H-Index์ž…๋‹ˆ๋‹ค." ์ด ๋ฌธ์ œ์˜ ์กฐ๊ฑด์„ "๋…ผ๋ฌธ์ด hํŽธ ์ด์ƒ์ธ ๋…ผ๋ฌธ์˜ ๊ฐœ์ˆ˜ == ๋…ผ๋ฌธ์ด h๋ฒˆ ์ดํ•˜ ์ธ์šฉ๋œ ๋…ผ๋ฌธ์˜ ๊ฐœ์ˆ˜"๋กœ ์ž˜๋ชป์ดํ•ดํ–ˆ๋‹ค. 
    • ๊ธฐ์กด ๋ฌธ์ œ ์กฐ๊ฑด์€ h์˜ ์ตœ๋Œ“๊ฐ’์„ ์ฐพ๋Š” ๊ฒƒ์ด๊ณ , ๋”ฐ๋ผ์„œ "h๋ฒˆ ์ด์ƒ ์ธ์šฉ๋œ ๋…ผ๋ฌธ์ด hํŽธ ์ด์ƒ"์ธ ์กฐ๊ฑด๋งŒ ์ถฉ์กฑ์‹œํ‚จ๋‹ค๋ฉด ๋‚˜๋จธ์ง€ ์กฐ๊ฑด์€ ์ž๋™์ ์œผ๋กœ ์ถฉ์กฑํ•˜๊ฒŒ ๋œ๋‹ค. 

     



    [ ์ •๋‹ต ์ฝ”๋“œ & ์˜ฌ๋ฐ”๋ฅธ ํ’€์ด ]

    ๐Ÿ“Œ ์˜ฌ๋ฐ”๋ฅธ ํ’€์ด

    1ํšŒ ์ธ์šฉ(1ํšŒ์ด์ƒ): 1,3,5,6 => 4๊ฐœ
            (1ํšŒ์ดํ•˜): 0,1 => 2๊ฐœ
    -> 4ํŽธ์˜ ๋…ผ๋ฌธ์ด 1ํšŒ ์ด์ƒ ์ธ์šฉ์ด๋ฏ€๋กœ ์กฐ๊ฑด ์ถฉ์กฑx
    2ํšŒ ์ธ์šฉ(2ํšŒ์ด์ƒ): 3,5,6 => 3๊ฐœ
            (2ํšŒ์ดํ•˜): 0,1 => 2๊ฐœ
    -> 3ํŽธ์˜ ๋…ผ๋ฌธ์ด 2ํšŒ ์ด์ƒ ์ธ์šฉ์ด๋ฏ€๋กœ ์กฐ๊ฑด ์ถฉ์กฑx
    3ํšŒ ์ธ์šฉ(3ํšŒ์ด์ƒ): 3,5,6 => 3๊ฐœ
            (3ํšŒ์ดํ•˜): 0,1,3 => 3๊ฐœ
    -> 3ํŽธ์˜ ๋…ผ๋ฌธ์ด 3ํšŒ ์ด์ƒ ์ธ์šฉ์ด๋ฏ€๋กœ ์กฐ๊ฑด ์ถฉ์กฑo

     

    1. "h๋ฒˆ ์ด์ƒ ์ธ์šฉ๋œ ๋…ผ๋ฌธ์ด hํŽธ ์ด์ƒ"์ธ ์กฐ๊ฑด๋งŒ ์ถฉ์กฑ์‹œํ‚ค๊ธฐ

    • h๋ฒˆ ์ด์ƒ ์ธ์šฉ๋œ ๋…ผ๋ฌธ์˜ ์ˆ˜ ≥ h ์กฐ๊ฑด์„ ์ •ํ™•ํžˆ ๋ฐ˜์˜ํ•œ๋‹ค.
    • ์ด๋•Œ h๋Š” ์ •๋ ฌ๋œ ๋ฐฐ์—ด์—์„œ citations.length - i๋กœ ๊ณ„์‚ฐํ•œ๋‹ค. 

     

    2. ์กฐ๊ฑด ๋งŒ์กฑ ์‹œ ์ข…๋ฃŒ

    • if (citations[i] >= h) ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ๊ฒฝ์šฐ H-Index๋ฅผ ์ฐพ์•˜์œผ๋ฏ€๋กœ ๋ฐ˜๋ณต๋ฌธ ์ข…๋ฃŒ

     



    ๐Ÿ“Œ ์ •๋‹ต ์ฝ”๋“œ

    import java.util.*;
    
    class Solution {
        public int solution(int[] citations) {
            int answer = 0;
    
            // ๋ฐฐ์—ด ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ
            Arrays.sort(citations);
            // [0, 1, 3, 5, 6]
    
    // citations[i]์—์„œ i๊ฐ’์„ ์ฆ๊ฐ€์‹œํ‚ค๊ณ  ๋…ผ๋ฌธ์˜ ์ˆ˜๋ฅผ ๊ฐ์†Œ์‹œํ‚ค๋ฉด์„œ ๋น„๊ต ํ–ˆ์„ ๋•Œ
    // ์ธ์šฉ ํšŸ์ˆ˜๊ฐ€ ๋…ผ๋ฌธ์˜ ์ˆ˜ ์ด์ƒ์ด ๋˜์—ˆ์„ ๋•Œ์˜ ๋…ผ๋ฌธ์˜ ์ˆ˜๊ฐ€ H-Index๊ฐ€ ๋œ๋‹ค
            //     1ํšŒ ์ธ์šฉ(1ํšŒ์ด์ƒ): 1,3,5,6 => 4๊ฐœ
            //            (1ํšŒ์ดํ•˜): 0,1 => 2๊ฐœ
            // -> 4ํŽธ์˜ ๋…ผ๋ฌธ์ด 1ํšŒ ์ด์ƒ ์ธ์šฉ์ด๋ฏ€๋กœ ์กฐ๊ฑด ์ถฉ์กฑx
            //     2ํšŒ ์ธ์šฉ(2ํšŒ์ด์ƒ): 3,5,6 => 3๊ฐœ
            //            (2ํšŒ์ดํ•˜): 0,1 => 2๊ฐœ
            // -> 3ํŽธ์˜ ๋…ผ๋ฌธ์ด 2ํšŒ ์ด์ƒ ์ธ์šฉ์ด๋ฏ€๋กœ ์กฐ๊ฑด ์ถฉ์กฑx
            //     3ํšŒ ์ธ์šฉ(3ํšŒ์ด์ƒ): 3,5,6 => 3๊ฐœ
            //            (3ํšŒ์ดํ•˜): 0,1,3 => 3๊ฐœ
            // -> 3ํŽธ์˜ ๋…ผ๋ฌธ์ด 3ํšŒ ์ด์ƒ ์ธ์šฉ์ด๋ฏ€๋กœ ์กฐ๊ฑด ์ถฉ์กฑo
            for(int i = 0; i < citations.length; i++) {
                // ์ธ์šฉ๋œ ๋…ผ๋ฌธ ์ˆ˜
                // 5๊ฐœ -> 4๊ฐœ -> 3๊ฐœ -> 2๊ฐœ -> 1๊ฐœ ์ˆœ์œผ๋กœ
                int h = citations.length - i;
    
    			// citations[i] ๋Š” 0 -> 1 -> 3 -> 5 -> 6 ์ˆœ์œผ๋กœ
                if(citations[i] >= h) {
                    answer = h;
                    break;
                }
            }
            return answer;
        }
    }
    ๋ฐ˜์‘ํ˜•
Designed by Tistory.