H-Index๋ ๊ณผํ์์ ์์ฐ์ฑ๊ณผ ์ํฅ๋ ฅ์ ๋ํ๋ด๋ ์งํ์ ๋๋ค. ์ด๋ ๊ณผํ์์ H-Index๋ฅผ ๋ํ๋ด๋ ๊ฐ์ธ h๋ฅผ ๊ตฌํ๋ ค๊ณ ํฉ๋๋ค. ์ํค๋ฐฑ๊ณผ1์ ๋ฐ๋ฅด๋ฉด, H-Index๋ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌํฉ๋๋ค.
์ด๋ค ๊ณผํ์๊ฐ ๋ฐํํ ๋ ผ๋ฌธ nํธ ์ค, h๋ฒ ์ด์ ์ธ์ฉ๋ ๋ ผ๋ฌธ์ด hํธ ์ด์์ด๊ณ ๋๋จธ์ง ๋ ผ๋ฌธ์ด h๋ฒ ์ดํ ์ธ์ฉ๋์๋ค๋ฉด h์ ์ต๋๊ฐ์ด ์ด ๊ณผํ์์ H-Index์ ๋๋ค.
์ด๋ค ๊ณผํ์๊ฐ ๋ฐํํ ๋ ผ๋ฌธ์ ์ธ์ฉ ํ์๋ฅผ ๋ด์ ๋ฐฐ์ด citations๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ์ด ๊ณผํ์์ H-Index๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
citations | return |
---|---|
[3, 0, 6, 1, 5] | 3 |
์ด ๊ณผํ์๊ฐ ๋ฐํํ ๋ ผ๋ฌธ์ ์๋ 5ํธ์ด๊ณ , ๊ทธ์ค 3ํธ์ ๋ ผ๋ฌธ์ 3ํ ์ด์ ์ธ์ฉ๋์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋๋จธ์ง 2ํธ์ ๋ ผ๋ฌธ์ 3ํ ์ดํ ์ธ์ฉ๋์๊ธฐ ๋๋ฌธ์ ์ด ๊ณผํ์์ H-Index๋ 3์ ๋๋ค.
์ฐ์ , ๋ฌธ์ ์ ๊ท์น์ ์ฐพ์ ๋, ์
๋ ฅ ๋ฐฐ์ด์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ฉด ๋ ์ฝ๊ฒ ์ฐพ์ ์ ์์ ๊ฑฐ ๊ฐ์ Arrays.sort()
ํจ์๋ก ์ ๋ ฌ์ ํด ์ฃผ์๋ค.
๊ทธ๋ฆฌ๊ณ citations
๋ฐฐ์ด์ ์ํํ๋ฉฐ, ํด๋น ์์ ๊ฐ๋ณด๋ค ํฐ ์์์ ๊ฐฏ์๊ฐ ํฌ๊ณ , ๋จ์ ์์์ ๊ฐฏ์๊ฐ ์์๋ณด๋ค ์์ผ๋ฉด, ํด๋น ์์ ๊ฐ์ ๊ทธ๋๋ก ๋ฐํํด์ฃผ๋๋ก ๊ตฌํ์ ํ์๋ค.
import java.util.*;
class Solution {
public int solution(int[] citations) {
int answer = 0;
Arrays.sort(citations);
if (citations.length == 1) {
answer = 0;
}
else {
for (int i = 0; i < citations.length; i++) {
if (citations.length - i >= citations[i] && i + 1 <= citations[i]) {
answer = citations[i];
}
}
}
return answer;
}
}
๊ทธ๋ฌ๋ ๊ฒฐ๊ณผ๋ ์คํจ์๋ค. ๊ทธ ์ด์ ๋ ๋ฌธ์ ์ดํด๋ฅผ ์ ๋ชปํ๊ธฐ ๋๋ฌธ์ด๋ค๐ซจ
h
๊ฐ ์
๋ ฅ ๋ฐฐ์ด ์์ ์๋ ์์ ์ค ํ๋์ผ ๊ฒ์ด๋ผ ์๊ฐํ๊ณ ์ ๊ทผ์ ํ์๋๋ฐ, ๋ฌธ์ ๋ฅผ ๋ค์ ์ฒ์ฒํ ์ดํดํด ๋ณด๋ h
๋ citations์ ์์์๋ ๋ณ๊ฐ๋ก, ๊ทธ์ ์ ์ ๊ฐ์ ์ต๋๊ฐ์ด์๋ค.
๋ ๋ฒ์งธ ์๋์์๋ ๊ท์น์ ๋ช ๊ฐ์ง ์ฐพ์ ์ ์์๋ค.
import java.util.*;
class Solution {
public int solution(int[] citations) {
int h = 0;
Arrays.sort(citations); // ์ค๋ฆ์ฐจ์ ์ ๋ ฌ
// ๊ธธ์ด๊ฐ 1์ธ ๊ฒฝ์ฐ
if (citations.length == 1) {
if (citations[0] == 0) {
h = 0; // [0]์ธ ๊ฒฝ์ฐ
}
else {
h = 1; // [1]์ธ ๊ฒฝ์ฐ
}
}
else if (citations[0] >= citations.length) {
h = citations.length;
// ์
๋ ฅ ๋ฐฐ์ด์ ์ฒซ ๋ฒ์งธ ์์๊ฐ ๊ธธ์ด๋ ๊ฐ์ ๊ฒฝ์ฐ
// ๊ธธ์ด๊ฐ H-Index์ด๋ค.
}
else {
int temp = citations[0];
while(true) {
int count = 0;
for (int i = 0; i < citations.length; i++) {
if (citations[i] >= temp) {
count++;// temp๋ณด๋ค ํฐ ์์์ ๊ฐฏ์ ์ ์ฅ
}
}
if (count > temp) {
temp++; // ๊ฐฏ์๊ฐ temp๋ณด๋ค ํฌ๋ฉด temp 1 ์ฆ๊ฐ ํ while๋ฌธ ๋ฐ๋ณต
}
else {
if (count < temp) {
h = temp - 1; // ๊ฐฏ์๊ฐ temp๋ณด๋ค ์์ผ๋ฉด temp 1 ๊ฐ์
}
else {
h = temp; // ๊ฐฏ์๊ฐ temp๋ ๊ฐ๋ค๋ฉด H-Index์ temp ์ ์ฅ
}
break;
}
}
}
return h;
}
}
์ฌ๋ฌ ์ผ์ด์ค๋ฅผ ๊ณ ๋ คํด ๋ณด๋, ์์ธ ์ฒ๋ฆฌ๋ฅผ ๋จผ์ ํด์ฃผ์ด์ผ ๊ฒ ๋ค๋ ์๊ฐ์ด ๋ค์๋ค.
๋ด๊ฐ ๋ฐ๊ฒฌํ ์ธ ๊ฐ์ง ์์ธ๋ ์๋์ ๊ฐ๋ค. ๋จ, ์ฌ๊ธฐ์ ์ธ๊ธ๋ citations
๋ฐฐ์ด์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ๋ citations
์ด๋ค.
citations
์ ๊ธธ์ด๊ฐ 1์ด๊ณ ์ฒซ ๋ฒ์งธ ์์๊ฐ 0์ธ ๊ฒฝ์ฐcitations
์ ๊ธธ์ด๊ฐ 1์ด๊ณ ์ฒซ ๋ฒ์งธ ์์๊ฐ 1์ธ ๊ฒฝ์ฐcitations
์ ์ฒซ ๋ฒ์งธ ์์๊ฐ citations
์ ๊ธธ์ด๋ ๊ฐ์ ๊ฒฝ์ฐ์ด ์ธ ๊ฐ์ง ์ผ์ด์ค๋ ์ถ๋ ฅ ๊ฐ์ด ์ผ์ ํ๊ธฐ ๋๋ฌธ์, ์กฐ๊ฑด๋ฌธ์ผ๋ก ๊ฐ๊ฐ ๋ถ๊ธฐํด ๋ฌธ์ ์์ ์๊ตฌํ๋ ๋ต์ ์ถ๋ ฅํ๋๋ก ๊ตฌํํ๋ค.
์ด์ , ์ผ๋ฐ์ ์ธ ์ผ์ด์ค๋ฅผ ๊ตฌํํด์ผ ํ๋ค.
temp
๋ฅผ ํ๋ ๋ง๋ค์ด citations
์ ์ฒซ ๋ฒ์งธ ์์๋ฅผ ์ ์ฅํด ์ฃผ์๊ณ , citations
๋ฅผ ์ญ ์ํํ๋ฉด์, temp
๋ณด๋ค ํฐ ๊ฐ์ ๊ฐฏ์๋ฅผ countํด ์ฃผ์๋ค.
๋ง์ฝ, count
๊ฐ temp
๋ณด๋ค ํฌ๋ฉด, ์ต๋๊ฐ์ ๋ ์ฐพ์๊ฐ ์ ์๋ค๋ ์๋ฏธ์ด๊ธฐ ๋๋ฌธ์ temp
์ 1์ ๋ํด ๋ฐ๋ณต๋ฌธ์ ๋ ๋ ์ ์๋๋ก ํ์๋ค.
๊ทธ๋ฆฌ๊ณ ๋ง์ฝ, count
๊ฐ temp
๋ณด๋ค ์๋ค๋ฉด, ํด๋น temp
๊ฐ์ ์ต๋๊ฐ๋ณด๋ค 1์ด ๋ ํฌ๋ค๋ ์๋ฏธ์ด๊ธฐ ๋๋ฌธ์, temp
์ 1์ ๋บ ๊ฐ์ ์ต์ข
H-Index์ ์ ์ฅํด ์ฃผ์๋ค. ๊ทธ๋ฐ๋ฐ, count
๊ฐ temp
๋ ๊ฐ์ ๊ฒฝ์ฐ๋ผ๋ฉด, temp
๊ฐ ๋ฐ๋ก ์ต๋๊ฐ์ด๋ผ๋ ์๋ฏธ์ด๊ธฐ ๋๋ฌธ์, temp
๋ฅผ ๋ฐ๋ก H-Index์ ์ ์ฅํด์ค์ผ๋ก์จ, ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๋ค ๊ณ ๋ คํ ์ ์์๋ค.
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 paper = len - i;
if (citations[i] >= paper) {answer = paper; break;}
}
return answer;
}
}
๋ฌธ์ ๋ฅผ ํ๊ณ , ๋ค๋ฅธ ๋ถ๋ค์ ํ์ด๋ฅผ ๋ณด๋,, ํจ์ฌ ๋ ๊ฐ๊ฒฐํ๊ฒ ๊ตฌํํ ์ ์๋ ๊ท์น์ฑ์ด ์์๋ค..
์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ๋ ๋ฐฐ์ด์์ ํ ์์๋ณด๋ค ํฐ ์์์ ๊ฐ์๋ฅผ ์ฐพ์ผ๋ ค๋ฉด, ๊ทธ๋ฅ ๋ฐฐ์ด์ ๊ธธ์ด์๋ค๊ฐ ์ธ๋ฑ์ค ๊ฐ์ ๋นผ์ฃผ๋ฉด ๋๋ ๊ฒ์ด์๋ค.
๊ทธ๋ ๊ฒ ๋๋ฉด, ๋ฐฐ์ด์ ๊ธธ์ด๊ฐ 1์ธ ๊ฒฝ์ฐ๋ฅผ ๋ฐ๋ก ๊ณ ๋ คํ์ง ์์๋ ๋๊ณ , while๋ฌธ์ ๋ ํ์๋ ์์ด์ ์๊ฐ์ ์ผ๋ก๋ ํจ์ฌ ํจ์จ์ ์ด๋ค.
์ด์ฒ๋ผ ๋ฌธ์ ์ ์กฐ๊ฑด์ ๊ทธ๋๋ก ๋ฐ์๋ค์ด๊ธฐ ๋ณด๋ค๋, ํ๋ฆ์ ํ์ ํ๊ณ ํ์ํ ๊ท์น๋ค๋ง ์ ๋ณํด๋ด๋ ๊ณผ์ ์ด ์ค์ํ๋ค๋ ๊ฑธ ๋ผ์ ๋ฆฌ๊ฒ ๋๋ ์ ์์๋ ๋ฌธ์ ์๋ค๐
์ง๋์ง๋....๊ทธ๋๋ ํด๋๋ค-!