๋ฌธ์
H-Index๋ ๊ณผํ์์ ์์ฐ์ฑ๊ณผ ์ํฅ๋ ฅ์ ๋ํ๋ด๋ ์งํ์ ๋๋ค. ์ด๋ ๊ณผํ์์ H-Index๋ฅผ ๋ํ๋ด๋ ๊ฐ์ธ h๋ฅผ ๊ตฌํ๋ ค๊ณ ํฉ๋๋ค. ์ํค๋ฐฑ๊ณผ์ ๋ฐ๋ฅด๋ฉด, H-Index๋ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌํฉ๋๋ค.
์ด๋ค ๊ณผํ์๊ฐ ๋ฐํํ ๋ ผ๋ฌธ nํธ ์ค, h๋ฒ ์ด์ ์ธ์ฉ๋ ๋ ผ๋ฌธ์ด hํธ ์ด์์ด๊ณ ๋๋จธ์ง ๋ ผ๋ฌธ์ด h๋ฒ ์ดํ ์ธ์ฉ๋์๋ค๋ฉด h์ ์ต๋๊ฐ์ด ์ด ๊ณผํ์์ H-Index์ ๋๋ค.
์ด๋ค ๊ณผํ์๊ฐ ๋ฐํํ ๋ ผ๋ฌธ์ ์ธ์ฉ ํ์๋ฅผ ๋ด์ ๋ฐฐ์ด citations๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ์ด ๊ณผํ์์ H-Index๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
ํด๊ฒฐ
key point, H-Index๋ ์ ๋ citation์ ํฌ๊ธฐ๋ฅผ ๋์ง ์๋๋ค.
๋๋ ์ด๋ถํ์์ผ๋ก ํ์์ง๋ง, ๋ฐ๋ณต๋ฌธ์ผ๋ก ํผ ์ฌ๋๋ค๋ ๋ง์๋ค.
- mid๋ ์ค์๊ฐ ( ์ต์, ์ต๋์ ์ค์๊ฐ : 0~citation.size() )
- ์ธ์ฉ๋ ํ์๊ฐ mid์ด์์ธ ๋ ผ๋ฌธ์ ๊ฐ์๋ cnt์ด๋ค.
- mid =< cnt ์ผ๋,
- ans๋ฅผ ๊ฐ์ฅํฐ mid๋ก ๊ฐฑ์ ํ๊ณ
- ๋ ํฐ mid๋ก๋ mid==cnt๋ฅผ ๋ง์กฑํ ์ ์๋์ง ํ์ธํ๋ค. → go(mid+1, r, arr)
- mid > cnt ๋ผ๋ฉด,
- ์ต์ํ mid==cnt๋ฅผ ๋ง์กฑํ๊ธฐ ์ํด์ cnt๊ฐ์๋ฅผ ๋๋ ค์ผ ํ๋ฏ๋ก mid๋ฅผ ์ค์ฌ์ผ ํ๋ค.
- ์ต๋์ mid๊ฐ์ ์ ์ญ๋ณ์ ans๋ก ํญ์ ๊ฐ๊ณ ์๊ณ ,
- l๊ณผ r์ ๋ฒ์๊ฐ ์๊ฐ๋ฆฌ๋ ์๊ฐ ํจ์๋ ์ข ๋ฃ๋๊ฒ ๋๋ค.
์ฝ๋
๋ค๋ฅธ ์ฌ๋์ ์ฝ๋
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int solution(vector<int> citations) {
sort(citations.begin(), citations.end(), greater<int>()); // ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ
for (int i = 0; i < citations.size(); ++i) {
if (citations[i] < i + 1) {
return i;
}
}
return citations.size();
}
๊ต์ฅํ ์ฐธ์ ํ๊ณ ๊ฐ๋จํ์ง๋ง ์์ง ์๋ฒฝํ๊ฒ ์ดํด๋ ํ์ง ๋ชปํ๋ค...
H-Index์ ๊ฐ๋ ์ด ์ ๋ง ์ด๋ ค์ ๋ ๋ฌธ์
'๐ฅ PS(Problem Solving) ๐ฅ > programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[programmers] ์ ๋ ฌ, k๋ฒ์งธ์ (0) | 2020.07.16 |
---|---|
[programmers] ์คํํ, ์ ๋ง๋๊ธฐ (0) | 2020.07.16 |
[programmers] ์ ๋ ฌ, ๊ฐ์ฅ ํฐ ์ (0) | 2020.07.16 |
[programmers] ์คํํ, ํ๋ฆฐํฐ (0) | 2020.07.16 |
[programmers] ์คํํ, ๊ธฐ๋ฅ๊ฐ๋ฐ (0) | 2020.07.04 |
๋๊ธ