https://school.programmers.co.kr/learn/challenges?tab=algorithm_practice_kit
ํธ๋ ๋์ ์ฌ๊ณ ๊ณผ์ ๋ฐ ๊ฐ์ ์
์ฒ์์ ๋ฌธ์ ๋ฅผ ์ฝ๊ณ ๋๋ฌด ๋จ์ํ๋ค๊ณ ์๊ฐํ๋ค.
import java.util.*;
class Solution {
public int solution(int[] citations) {
int answer = 0;
Arrays.sort(citations);
int len = citations.length;
for(int i=0; i<len; i++){
int tmpH = citations[i];
// ํ์ฌ ์์น ํฌํจํด์ ๋จ์ ๋
ผ๋ฌธ ํธ ์
int left = len - i;
if(tmpH > left){
break;
}else{
answer = tmpH;
}
}
return answer;
}
}
์ ๋ ฌํด์, ์ฒ์๋ถํฐ ๊ฐ ์์๋ฅผ ๋๋ฉด์ ๋จ์ ๋ ผ๋ฌธ ํธ์๋ฅผ ๋น๊ตํด ์ข ๋ฃ์กฐ๊ฑด์ ์ค์ ํด์ฃผ๋ฉด ๋๋ ๊ฒ ์๋๊ฐ? ๋ผ๊ณ ์๊ฐํ๋ค.
์ด๋ฌ๋ฉด ๋ฌธ์ ๊ฐ, ๋ชจ๋ ๋ ผ๋ฌธ์ ์ธ์ฉํ์๊ฐ len ๋ณด๋ค ํฌ๋ค๋ฉด ๋ฐ๋ก ๋๋๋ฒ๋ฆฐ๋ค. ๊ทธ๋ฆฌ๊ณ H-index์ ์ ์๋ฅผ ์ ๋๋ก ๋ฐ์ํ์ง ๋ชปํ๋ค.
"h๋ฒ ์ด์ ์ธ์ฉ๋ ๋ ผ๋ฌธ์ด hํธ ์ด์"์ด๋ผ๋ ๋ฌธ์ฅ์ด ๊ทธ๊ฑด๋ฐ, ๋๋ ํ์ฌ ์ธ์ฉ๋ ๋ ผ๋ฌธ ํ์์ ๋จ์ํ ๋จ์ ๋ ผ๋ฌธ ์๋ฅผ ๊ธฐ์ค์ผ๋ก ๋น๊ตํ๊ณ ์์ด์ ํ๋ฆฐ ๋ต์ด ๋์ฌ ์ ๋ฐ์ ์๋ค.
์ธ์ฉํ์๊ฐ ์ค์ฌ์ด ์๋๋ผ, ์ฆ๊ฐํ๋ H-index์ ๋ง๋ ์ธ์ฉ ์กฐ๊ฑด์ ์ฐพ๋๊ฒ ๋ฌธ์ ํด๋ต์ด์๋ค.
import java.util.*;
class Solution {
public int solution(int[] citations) {
int answer = 0;
ArrayList<Integer> arr = new ArrayList();
for(int c: citations){
arr.add(c);
}
arr.sort(Collections.reverseOrder());
int len = citations.length;
for(int i=0; i<len; i++){
int tmpH = arr.get(i);
if (tmpH < i + 1) {
break;
} else {
answer = i + 1;
}
}
return answer;
}
}
์ ๋ ฌ ์์๋ถํฐ ๋ฐ๊ฟจ๋ค. ์์ ์ธ์ฉํ์๊ฐ ๋ง์ ๋ ผ๋ฌธ ๋ถํฐ ๋ณด๊ฒ ํ๋ ๊ฒ์ด๋ค.
์ข ๋ฃ ์กฐ๊ฑด์ ์ธ์ฉํ์๊ฐ h-index ํ๋ณด ๋ณด๋ค ์์์ง ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด i๋ฒ์งธ ๋ ผ๋ฌธ์ ํ์ธํ ๋, ์ด๋ฏธ iํธ์ ๋ ผ๋ฌธ์ด ํ์ฌ ๋ ผ๋ฌธ ์ด์์ผ๋ก ์ธ์ฉ๋์์์ ์ ์ ์๋ค. ์ค๋ฆ์ฐจ์ ์ ๋ ฌ์ ํด๋ฒ๋ฆฌ๋ฉด h-index ์กฐ๊ฑด์ ๋ง๋ ์ง ๊ฒ์ฆํ๋ ๋ก์ง์ด ํ๋ ๋ ํ์ํ๋ฐ, ๋ด๋ฆผ์ฐจ์์ผ๋ก ํ๋ฉด ๋ณด์ฅ๋์ด์์ด์ ๋ ํจ์จ์ ์ด๋ค.
์กฐ๊ฑด์ด ๋จ์ํ๋๋ฐ ๋ง์ด ์ข ๋ชจํธํ๊ฒ ๋์ด์์ด์ ์ ๋จน์๋ ๋ฌธ์ ๋ค. ์ฒ์ ํ๋ฆฌ๊ณ ์ ์ ํ๋ ธ๋ ์ง ๊ฐ์ด ์์กํ๋ค.
๋์์ด ๋๋ค๋ฉด ๋๊ธ์ด๋ ๊ณต๊ฐ ๋ฒํผ ํ ๋ฒ์ฉ ๋๋ฅด๊ณ ๊ฐ์ฃผ์ธ์!
'OJ๐ผ > Programmers ๊ณ ๋์ ํท' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[LV.2][JAVA] ๊ฐ์ฅ ํฐ ์ (0) | 2024.08.30 |
---|---|
[LV.2][JAVA] ์ฌ๋ฐ๋ฅธ ๊ดํธ (0) | 2024.08.28 |
[LV.3][JAVA] ๋ฒ ์คํธ ์จ๋ฒ (0) | 2024.08.27 |
[LV.2][JAVA] ๋ ๋งต๊ฒ (0) | 2024.08.27 |
[LV.2][JAVA] ์ ํ๋ฒํธ ๋ชฉ๋ก (0) | 2024.08.25 |