💡 오늘의 학습 키워드
- 정렬
✅ 오늘 공부한 내용
- 오늘의 프로그래머스 문제! H-Index
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
👀 오늘의 회고
🤣 오늘의 문제점
- 오늘은 진짜 문제에 현혹되지 말고, 잘 이해하자..였다
- 한시간 동안 이게 무슨 소리지? 하고 이해하는데 반... 이게 왜 안되지? 이게 왜 되지? 하는데 반...
- 다시 문제를 들여다보고 해결이 되었다..
🔥 어떤 시도를 했는가?
- h-index 지수가 어떤 것인지 잘 이해하자..
- 초반에는 그냥 아무 생각 없이 HashMap까지 써가며 만들었었는데 그럴 필요가 없는 문제였다.
- 문제의 요지는 h-Index의 정의를 깨닫는 것.. 사람들이 질문하기에도 문제에 답이 다 있던데요.. 라고 하셨다.
- 하지만 프로그래머스 문제보다는 위키 백과에 있는 h 지수의 정의가 핵심인 문제였다. (+ 더하여 그림으로 보면 더 잘 이해가 된다. 어느 지점이 h-Index가 되는지 보여주는 글이 있다)
- h지수의 정의는
- 어떤 연구자가 살면서 N개의 논문을 썼다. 그런데 그 중 h회 이상 인용된 논문이 h개 이상일 때 둘을 동시에 만족하는 수
- 인데! 한마디로 2가지 조건을 만족하는 것이 핵심이란 뜻이다
- 자 그러면 우리의 문제로 와서 이해해 보자.
- 우리가 가지고 있는 숫자 중 하나는 구할 필요가 없다.
- 먼저 h회 이상 인용된 논문의 숫자는 citations로 주어지기 때문이다.
- 그렇다면 우리가 구해야 하는 것은 무엇인가? 바로 h 개의 논문의 갯수 중 최댓값이 필요하다.
- 즉, 그림으로 보자면 한 마디로 아래와 같다는 소리다.
- 한마디로 H-지수는 연구 성과를 평가하기 위한 지표인데 인용한 숫자와 논문수가 같아지는 그 순간이 역량을 판단하기 좋다고 생각한 위치이고, 그 이후부터는 인용하는 숫자가 줄면서 논문의 수는 는다는 것을 알게해주기 좋은 지표란 소리다....
- 즉 인용된 숫자가 클 수록 너 아직 평가하기 좀 그래~ 라고 한 거고..
- 인용된 숫자랑 논문 숫자가 같으면 흥미가 가는데? 라고 판단해서 보자고 한거고
- 인용된 숫자가 작을 수록 ㅇㅇ 너 인정~ 이런 느낌이라고 나는 이해했다...
- 그렇기에 다시 알고리즘적 사고로 돌아와 보자면
- 빠르게 정렬을 시켜주면 계산하기가 편해진다는 소리다.
- 아래 코드를 보면 더 빨리 이해할 수 있을 것이다.
import java.util.*;
class Solution {
public int solution(int[] citations) {
int answer = 0;
int n = citations.length;
Arrays.sort(citations); // [0, 1, 3, 5, 6]
for(int i = 0; i < n; i++){
// h 개 이상 인용된 논문의 수들 미리 계산
int h = n - i;
if(citations[i] >= h){
answer = h;
break;
}
}
return answer;
}
}
👏 무엇을 새로 알았는가?
- H-Index가 무엇인가?에 대해 알게 되었다.
👩💻 내일은 무엇을 학습할 것인가?
- 항해 99 문제 풀기
- 원티드..!를 좀 끝내보자(ㅠㅠ)
'개인 공부 > TIL' 카테고리의 다른 글
[ TIL - PGS ] 99클럽 코테 스터디 14일차 TIL + 오늘의 학습 가이드 (0) | 2024.08.04 |
---|---|
[ TIL - PGS ] 99클럽 코테 스터디 13일차 TIL + 오늘의 학습 가이드 (0) | 2024.08.03 |
[ TIL - PGS ] 99클럽 코테 스터디 11일차 TIL + 오늘의 학습 가이드 (0) | 2024.08.01 |
[ TIL - PGS ] 99클럽 코테 스터디 10일차 TIL + 오늘의 학습 가이드 (0) | 2024.07.31 |
[ TIL - PGS ] 99클럽 코테 스터디 9일차 TIL + 오늘의 학습 가이드 (0) | 2024.07.30 |