1. ๋ฌธ์ ์ค๋ช
H-Index๋ ๊ณผํ์์ ์์ฐ์ฑ๊ณผ ์ํฅ๋ ฅ์ ๋ํ๋ด๋ ์งํ์
๋๋ค. ์ด๋ ๊ณผํ์์ H-Index๋ฅผ ๋ํ๋ด๋ ๊ฐ์ธ h๋ฅผ ๊ตฌํ๋ ค๊ณ ํฉ๋๋ค. ์ํค๋ฐฑ๊ณผ1์ ๋ฐ๋ฅด๋ฉด, H-Index๋ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌํฉ๋๋ค.
์ด๋ค ๊ณผํ์๊ฐ ๋ฐํํ ๋ ผ๋ฌธ nํธ ์ค, h๋ฒ ์ด์ ์ธ์ฉ๋ ๋ ผ๋ฌธ์ด hํธ ์ด์์ด๊ณ ๋๋จธ์ง ๋ ผ๋ฌธ์ด h๋ฒ ์ดํ ์ธ์ฉ๋์๋ค๋ฉด h์ ์ต๋๊ฐ์ด ์ด ๊ณผํ์์ H-Index์ ๋๋ค.
์ด๋ค ๊ณผํ์๊ฐ ๋ฐํํ ๋ ผ๋ฌธ์ ์ธ์ฉ ํ์๋ฅผ ๋ด์ ๋ฐฐ์ด citations๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ์ด ๊ณผํ์์ H-Index๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ์ฌํญ
- ๊ณผํ์๊ฐ ๋ฐํํ ๋ ผ๋ฌธ์ ์๋ 1ํธ ์ด์ 1,000ํธ ์ดํ์ ๋๋ค.
- ๋ ผ๋ฌธ๋ณ ์ธ์ฉ ํ์๋ 0ํ ์ด์ 10,000ํ ์ดํ์ ๋๋ค.
์ ์ถ๋ ฅ ์
์
์ถ๋ ฅ ์ ์ค๋ช
์ด ๊ณผํ์๊ฐ ๋ฐํํ ๋
ผ๋ฌธ์ ์๋ 5ํธ์ด๊ณ , ๊ทธ์ค 3ํธ์ ๋
ผ๋ฌธ์ 3ํ ์ด์ ์ธ์ฉ๋์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋๋จธ์ง 2ํธ์ ๋
ผ๋ฌธ์ 3ํ ์ดํ ์ธ์ฉ๋์๊ธฐ ๋๋ฌธ์ ์ด ๊ณผํ์์ H-Index๋ 3์
๋๋ค.
2. ์ ๊ทผ๋ฐฉ์
๋ฌธ์ ๊ฐ ์ด๋ ค์์ ์ฒ์ ์ฝ๊ณ ์ดํด๊ฐ ์ ์๋๋๋ฐ
๋ฐฐ์ด์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ ํ๋ค.
๊ทธ๋ฌ๋ฉด ์ธ์ฉํ์๊ฐ ๋ฎ์ ๋
ผ๋ฌธ๋ถํฐ ์ ๋ ฌ์ด ๋๋ค.
๊ทธ ํ ์กฐ๊ฑด์ ๋น๊ตํด ์ฃผ๋ฉด ๋๋ค.
ํ์ฌ ์ธ์ฉ ํ์ citations[i]์ ๋จ์ ๋
ผ๋ฌธ ์ h๋ฅผ ๋น๊ตํด์
citations[i]๊ฐ ๋จ์ ๋
ผ๋ฌธ ์ h ์ ๊ฐ์์ง๊ฑฐ๋ ์ปค์ง๋ ์์ ์
h๊ฐ์ ๋ฆฌํดํ๋ฉด ๋๋ค.
h๊ฐ์ ๋ฐฐ์ด ๊ธธ์ด์์ ์ธ๋ฑ์ค๋ฅผ ๋นผ์ค ๊ฐ์ผ๋ก citations.length-i ์ด๋ค.
๋ฌธ์ ์ดํด๊ฐ ์ด๋ ต์ง๋ง, ์ฝ๋ ์์ฒด๋ ์ฌ์ด ๋ฌธ์ ์ด๋ค.
STEP 1. Arrays.sort()๋ก citations ์ค๋ฆ์ฐจ์ ์ ๋ ฌ
STEP 2. ํ์ฌ ์ธ์ฉ ํ์(citations[i]) >= ๋จ์ ๋ ผ๋ฌธ์(h)๊ฐ ๋๋ ์์ ์ด ์ธ์ ์ธ์ง ํ์ธ
citations[i] | ๋จ์๋ ผ๋ฌธ์ h | |||||||
0 1 3 5 6 | 0ํ ์ด์ ์ธ์ฉ๋ ๋ ผ๋ฌธ์ด 5ํธ | 0 | < | 5 | ||||
0 1 3 5 6 | 1ํ ์ด์ ์ธ์ฉ๋ ๋ ผ๋ฌธ์ด 4ํธ | 1 | < | 4 | ||||
0 1 3 5 6 | 3ํ ์ด์ ์ธ์ฉ๋ ๋ ผ๋ฌธ์ด 3ํธ | 3 | = | 3 | ||||
0 1 3 5 6 | 5ํ ์ด์ ์ธ์ฉ๋ ๋ ผ๋ฌธ์ด 2ํธ | 5 | > | 2 | ||||
0 1 3 5 6 | 6ํ ์ด์ ์ธ์ฉ๋ ๋ ผ๋ฌธ์ด 1ํธ | 6 | > | 1 |
์กฐ๊ฑด ํ์ธ: ๊ฐ ๋
ผ๋ฌธ ์ธ๋ฑ์ค i์ ๋ํด, ํ์ฌ ์ธ์ฉ ํ์ citations[i]๊ฐ ๋จ์ ๋
ผ๋ฌธ ์ h ์ด์์ธ์ง ํ์ธํ๊ธฐ
ํ์ฌ ์ธ์ฉ ํ์ >= ๋จ์ ๋
ผ๋ฌธ์ ๊ฐ ๋๋ ์์ ์ h ๊ฐ์ด H-Index
์ ํ์์๋ citation[2]์์ ํ์ฌ ์ธ์ฉ ํ์๊ฐ 3์ด๊ณ ๋จ์ ๋
ผ๋ฌธ์๋ 3์ด๊ธฐ ๋๋ฌธ์ ๋ ๊ฐ์ด ๊ฐ์์ง๋ค.
๊ทธ๋์ ๋จ์ ๋
ผ๋ฌธ ์์ ์ต๋๊ฐ 3์ด H-Index๊ฐ ๋๋ค.
3. ๋ฌธ์ ํ์ด
import java.util.Arrays;
class Solution {
public int solution(int[] citations) {
// ๊ฒฐ๊ณผ๊ฐ ๋ด์ ์ ์ํ ๋ณ์ answer ์ด๊ธฐํ
int answer = 0;
// ๋ฐฐ์ด ์ค๋ฆ์ฐจ์ ์ ๋ ฌ
Arrays.sort(citations);
// ๋ฐฐ์ด ์ํํ๊ธฐ
for(int i = 0; i < citations.length; i++) {
// ๋จ์ ๋
ผ๋ฌธ์ ์
int h = citations.length - i;
// ํ์ฌ๊น์ง ์ธ์ฉ๋ ์๊ฐ ๋จ์ ๋
ผ๋ฌธ์ ์์ ๊ฐ๊ฑฐ๋ ์ปค์ง๋ฉด
if (citations[i] >= h) {
// ๋จ์ ๋
ผ๋ฌธ์ ์์ ์ต๋๊ฐ์ธ h๋ฅผ answer์ ์ ์ฅ
answer = h;
break;
}
}
return answer;
}
}
4. ๋์ผ ์ ํ ๋ฌธ์ (์ ๋ ฌ)
https://awesomepossum.tistory.com/291
https://awesomepossum.tistory.com/291