09
01

https://school.programmers.co.kr/learn/challenges?tab=algorithm_practice_kit

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

ํ‘ธ๋Š” ๋™์•ˆ ์‚ฌ๊ณ ๊ณผ์ • ๋ฐ ๊ฐœ์„ ์ 

์ฒ˜์Œ์— ๋ฌธ์ œ๋ฅผ ์ฝ๊ณ  ๋„ˆ๋ฌด ๋‹จ์ˆœํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.

import java.util.*;

class Solution {
    public int solution(int[] citations) {
        int answer = 0;
        Arrays.sort(citations);
        int len = citations.length;
        for(int i=0; i<len; i++){
            int tmpH = citations[i];
            // ํ˜„์žฌ ์œ„์น˜ ํฌํ•จํ•ด์„œ ๋‚จ์€ ๋…ผ๋ฌธ ํŽธ ์ˆ˜
            int left = len - i;
            if(tmpH > left){
                break;
            }else{
                answer = tmpH;
            }
        }
            
        return answer;
    }
}

์ •๋ ฌํ•ด์„œ, ์ฒ˜์Œ๋ถ€ํ„ฐ ๊ฐ ์›์†Œ๋ฅผ ๋Œ๋ฉด์„œ ๋‚จ์€ ๋…ผ๋ฌธ ํŽธ์ˆ˜๋ฅผ ๋น„๊ตํ•ด ์ข…๋ฃŒ์กฐ๊ฑด์„ ์„ค์ •ํ•ด์ฃผ๋ฉด ๋˜๋Š” ๊ฒŒ ์•„๋‹Œ๊ฐ€? ๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.

์ด๋Ÿฌ๋ฉด ๋ฌธ์ œ๊ฐ€, ๋ชจ๋“  ๋…ผ๋ฌธ์˜ ์ธ์šฉํšŸ์ˆ˜๊ฐ€ len ๋ณด๋‹ค ํฌ๋‹ค๋ฉด ๋ฐ”๋กœ ๋๋‚˜๋ฒ„๋ฆฐ๋‹ค. ๊ทธ๋ฆฌ๊ณ  H-index์˜ ์ •์˜๋ฅผ ์ œ๋Œ€๋กœ ๋ฐ˜์˜ํ•˜์ง€ ๋ชปํ–ˆ๋‹ค.

"h๋ฒˆ ์ด์ƒ ์ธ์šฉ๋œ ๋…ผ๋ฌธ์ด hํŽธ ์ด์ƒ"์ด๋ผ๋Š” ๋ฌธ์žฅ์ด ๊ทธ๊ฑด๋ฐ, ๋‚˜๋Š” ํ˜„์žฌ ์ธ์šฉ๋œ ๋…ผ๋ฌธ ํšŸ์ˆ˜์™€ ๋‹จ์ˆœํžˆ ๋‚จ์€ ๋…ผ๋ฌธ ์ˆ˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋น„๊ตํ•˜๊ณ  ์žˆ์–ด์„œ ํ‹€๋ฆฐ ๋‹ต์ด ๋‚˜์˜ฌ ์ˆ˜ ๋ฐ–์— ์—†๋‹ค.

์ธ์šฉํšŸ์ˆ˜๊ฐ€ ์ค‘์‹ฌ์ด ์•„๋‹ˆ๋ผ, ์ฆ๊ฐ€ํ•˜๋Š” H-index์— ๋งž๋Š” ์ธ์šฉ ์กฐ๊ฑด์„ ์ฐพ๋Š”๊ฒŒ ๋ฌธ์ œ ํ•ด๋‹ต์ด์—ˆ๋‹ค.

import java.util.*;

class Solution {
    public int solution(int[] citations) {
        int answer = 0;
        ArrayList<Integer> arr = new ArrayList();
        for(int c: citations){
            arr.add(c);
        }
        arr.sort(Collections.reverseOrder());

        int len = citations.length;
        for(int i=0; i<len; i++){
            int tmpH = arr.get(i);
            if (tmpH < i + 1) {
                break;
            } else {
                answer = i + 1;
            }
        }
        
        return answer;
    }
}

์ •๋ ฌ ์ˆœ์„œ๋ถ€ํ„ฐ ๋ฐ”๊ฟจ๋‹ค. ์•„์˜ˆ ์ธ์šฉํšŸ์ˆ˜๊ฐ€ ๋งŽ์€ ๋…ผ๋ฌธ ๋ถ€ํ„ฐ ๋ณด๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

์ข…๋ฃŒ ์กฐ๊ฑด์€ ์ธ์šฉํšŸ์ˆ˜๊ฐ€ h-index ํ›„๋ณด ๋ณด๋‹ค ์ž‘์•„์งˆ ๋•Œ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด i๋ฒˆ์งธ ๋…ผ๋ฌธ์„ ํ™•์ธํ•  ๋•Œ, ์ด๋ฏธ iํŽธ์˜ ๋…ผ๋ฌธ์ด ํ˜„์žฌ ๋…ผ๋ฌธ ์ด์ƒ์œผ๋กœ ์ธ์šฉ๋˜์—ˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ์„ ํ•ด๋ฒ„๋ฆฌ๋ฉด h-index ์กฐ๊ฑด์— ๋งž๋Š” ์ง€ ๊ฒ€์ฆํ•˜๋Š” ๋กœ์ง์ด ํ•˜๋‚˜ ๋” ํ•„์š”ํ•œ๋ฐ, ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ํ•˜๋ฉด ๋ณด์žฅ๋˜์–ด์žˆ์–ด์„œ ๋” ํšจ์œจ์ ์ด๋‹ค.

 

์กฐ๊ฑด์ด ๋‹จ์ˆœํ–ˆ๋Š”๋ฐ ๋ง์ด ์ข€ ๋ชจํ˜ธํ•˜๊ฒŒ ๋˜์–ด์žˆ์–ด์„œ ์• ๋จน์—ˆ๋˜ ๋ฌธ์ œ๋‹ค. ์ฒ˜์Œ ํ‹€๋ฆฌ๊ณ ์„œ ์™œ ํ‹€๋ ธ๋Š” ์ง€ ๊ฐ์ด ์•ˆ์žกํ˜”๋‹ค.

 

๋„์›€์ด ๋๋‹ค๋ฉด ๋Œ“๊ธ€์ด๋‚˜ ๊ณต๊ฐ ๋ฒ„ํŠผ ํ•œ ๋ฒˆ์”ฉ ๋ˆ„๋ฅด๊ณ  ๊ฐ€์ฃผ์„ธ์š”!

 

๋ฐ˜์‘ํ˜•
COMMENT