프로그래밍
프로그래머스 C# H-Index(Array.Sort(), 파이썬, 자바)
노마드선샤인
2023. 2. 4. 18:59
728x90
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