2024. 2. 26. 09:27ㆍIT/TIL
오늘의 TIL은 대충 만든 자판이라는 프로그래머스의 문제에 대한 내용이다.
문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/42747
문제 설명
H-Index는 과학자의 생산성과 영향력을 나타내는 지표이다.
어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 한다.
H-Index는 어떤 과학자가 발표한 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고
나머지 논문이 h번 이하 인용되었다면 h의 최댓값이 이 과학자의 H-Index이다.
어떤 과학자가 발표한 논문의 인용 횟수를 담은 배열 citations가 매개변수로 주어질 때,
이 과학자의 H-Index를 return 하시오.
제한 조건
과학자가 발표한 논문의 수는 1편 이상 1,000편 이하이다.
논문별 인용 횟수는 0회 이상 10,000회 이하이다.
해결 방안
1. 주어진 citations의 배열을 내림차순으로 정렬하여 인용횟수를 큰 수부터 확인할 수 있게 한다.
2. citations의 길이만큼 반복하면서 해당 원소(citations[i])가 인용횟수(i + 1)과 같거나 크면
그 값을 H-Index로 변경한다.
통과한 답안
using System;
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 = i + 1;
}
else
{
break;
}
}
return answer;
}
}
citations 배열을 내림차순으로 정리
Array.Sort(citations);
Array.Reverse(citations);
배열의 정렬 기능을 활용하여 내림차순으로 정리
H-Index값 업데이트
for (int i = 0; i < citations.Length; i++)
{
if (citations[i] >= i + 1)
{
answer = i + 1;
}
else
{
break;
}
}
for 문을 citations의 길이만큼 돌면서
해당 원소가 i + 1(배열이므로 +1)과 같거나 크면 그 값을 H-Index로 업데이트
오늘은 이전에는 문제를 보고 난이도가 높다고 생각하고 넘어갔었던 H-Index라는 문제를 풀었는데,
실제로 문제를 풀이해보니 생각보다 간단하게 풀 수 있었던 문제였다.
이 H-Index라는 단어가 문제를 만들기 위해 만든 단어가 아니라 실제로 있는 단어로,
학술논문과 관련되어 있는 단어라서 반가운 마음으로 TIL로 기록하게되었다.
'IT > TIL' 카테고리의 다른 글
20240227_N-Queen(프로그래머스) (1) | 2024.02.28 |
---|---|
20240226_숫자 카드 나누기(프로그래머스) (0) | 2024.02.26 |
20240221_대충 만든 자판(프로그래머스) (1) | 2024.02.21 |
20240220_두 원 사이의 정수 쌍(프로그래머스) (0) | 2024.02.21 |
20240219_유니티 Monobehaviour (0) | 2024.02.21 |