728x90
SMALL

using System;
using System.Linq;

public class Solution {
    public int solution(int[] citations) {
        int answer = 0;
        Array.Sort(citations);
        Array.Reverse(citations);
        
        for(int i = 0;i<citations.Length;i++)
        {
            if(citations[i] >= i+1)
            {
                answer++;
            }
        }
        
        return answer;
    }
}

 

/////////////

 

//이건 아무리 봐도 설명이 부실했다. 예에 나온 것처럼 [3, 0, 6, 1, 5] 일때 인용이 많은 순서대로 정렬한 [6,5,3,1,0]에서 0번째 인덱스는 1보다 커야하고 1번째 인덱스는 2보다 커야하는 식으로

 

///내림차순으로 정렬된 어레이에서 처음부터 i 번째 어레이의 인덱스가 i+1보다 크지 않은 첫 번째 경우가 나올 때까지의 갯수를 구하는 건데 약간 설명이 애매하게 돼 있다. 

 

 

파이썬

 

def solution(citations):
    citations.sort(reverse=True)
    answer = max(map(min, enumerate(citations, start=1)))
    return answer

 

/////

 

 

def solution(citations):
    citations = sorted(citations)
    l = len(citations)
    for i in range(l):
        if citations[i] >= l-i:
            return l-i
    return 0

 

 

자바

 

 

import java.util.Arrays;

class Solution {
    public int solution(int[] citations) {
        int answer = 0;
        Arrays.sort(citations);
        
        for(int i=0; i<citations.length; i++)
        {
            int smaller = Math.min(citations[i], citations.length-i);
            answer = Math.max(answer, smaller);
        }
        
        return answer;
    }
}
728x90

설정

트랙백

댓글