https://school.programmers.co.kr/learn/courses/30/lessons/42747
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
ํ์ด1
๋ค์์ ๋ง ๊ทธ๋๋ก ๋ฌธ์ ๋ด์ฉ์ ๊ทธ๋๋ก ๊ตฌํํ ํ์ด
function solution(citations) {
let ans=0;
let h = citations.sort((a,b) => b-a)[0];
while(h-- && h>0) {
if(citations.filter(v => v>=h).length >= h) {
ans = h;
break;
}
}
return ans;
}
ํ ์ผ 16๋ง ํ๋ฆฐ๋ค๋ฉด ์ธ์ฉ์๊ฐ ์ ๋ถ 0์ผ๋ ๋ต์ด 0์ผ๋ก ์ ๋์ค๋์ง ํ์ธํ์...
ํ์ด2
์์ ์์ citations์ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ฉด
index | 0 | 1 | 2 | 3 | 4 |
value | 6 | 5 | 3 | 1 | 0 |
6๋ฒ ์ด์ ์ธ์ฉ๋๊ฑด 1๊ฐ
5๋ฒ ์ด์ ์ธ์ฉ๋๊ฑด 2๊ฐ
4๋ฒ ์ด์ ์ธ์ฉ๋๊ฑด 2๊ฐ
3๋ฒ ์ด์ ์ธ์ฉ๋๊ฑด 3๊ฐ
2๋ฒ ์ด์ ์ธ์ฉ๋๊ฑด 3๊ฐ
1๋ฒ ์ด์ ์ธ์ฉ๋๊ฑด 4๊ฐ
0๋ฒ ์ด์ ์ธ์ฉ๋๊ฑด 5๊ฐ ์์ ์ ์ ์๋ค
์ฆ citations[i] = v ๋ i+1๊ฐ์ ๋ ผ๋ฌธ์ด v๋ฒ ์ด์ ์ธ์ฉ๋์๋ค๊ณ ํด์ํ ์ ์๋ค
์ด๋ฐ ์์ผ๋ก ํด์ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ณ๋ก ์์ด์ ์ข ๋ฏ์ค๊ธดํ๋ค
h-index๋ฅผ ๋ง์กฑํ๋ ค๋ฉด h๊ฐ(์ด์)์ ๋ ผ๋ฌธ์ด h๋ฒ ์ด์ ์ธ์ฉ๋์ด์ผ ํ๋ฏ๋ก
h <= citations[h-1] ์ฌ์ผํ๋ค
๊ทธ๋ ๋ค๋ฉด h๋ฅผ 0๋ถํฐ ์ฌ๋ ค๊ฐ๋ฉฐ ํด๋น ์กฐ๊ฑด์ ๋ง์กฑํ์ง ์๋ ์๊ฐ์ h-1 ๊ฐ์ ๋ฆฌํดํ๋ฉด
๊ทธ๊ฒ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์ต๋๊ฐ์ด ๋๋ค.
( ์ด๋ citations ๋ฐฐ์ด์ ์์ ๋ฒ์ด๋ ๊ฒฝ์ฐ์๋ ๋ฐ๋ณต๋ฌธ์ด ์ข ๋ฃ๋ ์ ์๊ฒํด์ผ
[10,10,10,10,10] ๊ฐ์ ํ ์คํธ์ผ์ด์ค์์ ๋ฌดํ๋ฃจํ์ ๋น ์ง์ง ์๋๋ค )
function solution(citations) {
citations.sort((a,b) => b-a);
let h = 0;
while(true) {
if(h+1 > citations[h] || citations[h] === undefined) {
return h;
}
h++;
}
return h;
}
'๐ ๋ญ? JS๋ก PS๋ฅผ ํ๋ค๊ณ ?' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค][JS / Javascript] n^2 ๋ฐฐ์ด ์๋ฅด๊ธฐ (0) | 2023.05.12 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค][JS / Javascript] ์์๋๋ฐ์ ์์์ต๋๋ค (0) | 2023.05.11 |
[ํ๋ก๊ทธ๋๋จธ์ค][Javascript / JS] ๊ดํธ ํ์ ํ๊ธฐ (0) | 2023.05.09 |
[ํ๋ก๊ทธ๋๋จธ์ค][Javascript / JS] ๊ทค ๊ณ ๋ฅด๊ธฐ (0) | 2023.05.08 |
[ํ๋ก๊ทธ๋๋จธ์ค][Javascript / JS] ๋ฉ๋ฆฌ ๋ฐ๊ธฐ (0) | 2023.05.04 |