[๋ฌธ์ ]
https://school.programmers.co.kr/learn/courses/30/lessons/42747
[ํด๊ฒฐ๋ฒ]
[3, 0, 6, 1, 5] ๊ฐ ์์ ๋ h๋ฒ ์ด์ ์ธ์ฉ๋ ๋ ผ๋ฌธ ํ์๊ฐ h๊ฐ ์ด์์ด๊ณ ๋๋จธ์ง๊ฐ h๋ฒ ์ดํ๋ก ์ธ์ฉ๋๋ฉด ๋๋ค.
์ฆ, h = 1์ผ ๋ -> 1๋ฒ ์ด์ ์ธ์ฉ๋ ๋ ผ๋ฌธ์ด 1๊ฐ ์ด์์ด์ด์ผ ํจ. ๋๋จธ์ง๊ฐ 1์ดํ๋ก ์ธ์ฉ๋์ด์ผ ํจ.
h = 2์ผ ๋ -> 2๋ฒ ์ด์ ์ธ์ฉ๋ ๋ ผ๋ฌธ์ด 2๊ฐ ์ด์์ด์ด์ผ ํจ. ๋๋จธ์ง๊ฐ 2์ดํ๋ก ์ธ์ฉ๋์ด์ผ ํจ.
h = 3 ์ผ ๋ -> 3๋ฒ ์ด์ ์ธ์ฉ๋ ๋ ผ๋ฌธ์ด 3๊ฐ ์ด์์ด์ด์ผ ํจ. ๋๋จธ์ง๊ฐ 3์ดํ๋ก ์ธ์ฉ๋์ด์ผ ํจ.
.
.
.
(์ค๋ต)
h ๊ฐ์ 1๋ถํฐ 1์ฉ ๋๋ ค๊ฐ๋ฉฐ ๋ฐฐ์ด์ ๋ค ๋๋ฉด์ ํ๋จํ ๊ฒ์ธ๊ฐ... ๊ทธ๋ฌ๊ธฐ์ ์ ํ์ฌํญ์ ์ซ์ ๊ฐ์ด ๋๋ฌด ํผ(๋ฌด์กฐ๊ฑด ์๊ฐ์ด๊ณผ)
๋ฒกํฐ๋ฅผ ์ค๋ฆ์ฐจ์ ์ ๋ ฌํ ํ h ๊ฐ์ 0๋ถํฐ 1์ฉ ๋๋ ค๊ฐ๋ฉฐ ํ์ํ๋ค๊ฐ h๊ฐ ์ด์์ธ ์๋ฅผ ๋ง๋๋ฉด "๋ฒกํฐ ๊ธธ์ด - h" ๊ฐ์ผ๋ก ํฐ ๊ฐ์ ๊ฐ์๋ฅผ ์ฐพ์์ค๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ ๊ฐ์ด h๊ฐ์ด๋ฉด ์ ๋ต์ผ๋ก ๋ฆฌํดํ๋ค.
-> ๋ฌธ์ ๋ฅผ ๋ ์ดํดํ๊ฑฐ๋ค... [4, 3, 3, 3, 3] ์ผ์ด์ค์ ์ ๋ต์ด 3์ธ๋ฐ ์ ์ฒ๋ผ ์ง๋ฉด 3๋ฒ ์ด์ ์ธ์ฉ๋ ๋ ผ๋ฌธ์ด 5๊ฐ๋ผ์ 3์ ๋์ถ์ํ๋ค.
-> h ๊ฐ์ 0๋ถํฐ 1์ฉ ๋๋ ค์ ์ฐพ์ ํ์ ์์ด ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌํ ๋ฒกํฐ๋ฅผ ์ํํ๋ฉด์ ์ธ์ฉ๋ ํ์ < h index๋ฅผ ๋ง์กฑํ๋ h index๋ฅผ ์ฐพ์ผ๋ฉด ๋๋ค.
4 3 3 3 3
์ฒซ๋ฒ์งธ ๋ ผ๋ฌธ 4์ h index๋ 1
๋๋ฒ์งธ ๋ ผ๋ฌธ 3์ h index๋ 2
์ธ๋ฒ์งธ ๋ ผ๋ฌธ 3์ h index๋ 3
๋ค๋ฒ์งธ ๋ ผ๋ฌธ 3์ h index๋ 4์ธ๋ฐ h index๋ณด๋ค ์ธ์ฉ๋ ๋ ผ๋ฌธ ํ์๊ฐ ์์ผ๋ฏ๋ก ํ์์ ๋ฉ์ถ๊ณ 3์ ๋ฆฌํดํ๋ค.
์ฃ์ง ์ผ์ด์ค ์ฐธ๊ณ ...
[์์๋ ๊ฒ]
๋ฒกํฐ ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ
sort(v.begin(), v.end(), greater<int>());
[์ฝ๋]
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int solution(vector<int> citations) {
int answer = 0;
//answer๊ฐ ๊ตฌํ๊ธฐ ์ฝ๊ฒ ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ. 6 5 3 1 0
sort(citations.begin(), citations.end(), greater<int>());
// ์ต๋๊ฐ์ด 0์ด๋ฉด 0 ์ถ๋ ฅ
if(!citations[0]) { return 0; }
//citations ๋ฒกํฐ ๋๋ฉด์ h๋ฒ ์ด์ ์ธ์ฉ๋์๋์ง ์ฒดํฌ
for(int h = 0; h < citations.size(); h++){
if(citations[h] > h) answer++;
else break;
}
return answer;
}
'๐ Coding Test Study > Algorithm Problem' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C++][Programmers][์์ ํ์] ๋ชจ์๊ณ ์ฌ (0) | 2023.04.21 |
---|---|
[C++][Programmers][์์ ํ์] ์ต์์ง์ฌ๊ฐํ (0) | 2023.04.21 |
[C++][Programmers][์ ๋ ฌ] ๊ฐ์ฅ ํฐ ์ (1) | 2023.04.19 |
[C++][Programmers][์ ๋ ฌ] K๋ฒ์งธ ์ (0) | 2023.04.19 |
[C++][Beakjoon][DFS/BFS] 13023๋ฒ ABCDE (0) | 2022.05.10 |