[์ค์ํํธ ์๊ณ ๋ฆฌ์ฆ] ํ๋ก๊ทธ๋๋จธ์ค: H-Index
๋ฌธ์
๋ฌธ์ ์ค๋ช
H-Index๋ ๊ณผํ์์ ์์ฐ์ฑ๊ณผ ์ํฅ๋ ฅ์ ๋ํ๋ด๋ ์งํ์ ๋๋ค. ์ด๋ ๊ณผํ์์ H-Index๋ฅผ ๋ํ๋ด๋ ๊ฐ์ธ h๋ฅผ ๊ตฌํ๋ ค๊ณ ํฉ๋๋ค. ์ํค๋ฐฑ๊ณผ1์ ๋ฐ๋ฅด๋ฉด, H-Index๋ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌํฉ๋๋ค.
์ด๋ค ๊ณผํ์๊ฐ ๋ฐํํ ๋ ผ๋ฌธ nํธ ์ค, h๋ฒ ์ด์ ์ธ์ฉ๋ ๋ ผ๋ฌธ์ด hํธ ์ด์์ด๊ณ ๋๋จธ์ง ๋ ผ๋ฌธ์ด h๋ฒ ์ดํ ์ธ์ฉ๋์๋ค๋ฉด h์ ์ต๋๊ฐ์ด ์ด ๊ณผํ์์ H-Index์ ๋๋ค.
์ด๋ค ๊ณผํ์๊ฐ ๋ฐํํ ๋ ผ๋ฌธ์ ์ธ์ฉ ํ์๋ฅผ ๋ด์ ๋ฐฐ์ด citations๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ์ด ๊ณผํ์์ H-Index๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ์ฌํญ
- ๊ณผํ์๊ฐ ๋ฐํํ ๋ ผ๋ฌธ์ ์๋ 1ํธ ์ด์ 1,000ํธ ์ดํ์ ๋๋ค.
- ๋ ผ๋ฌธ๋ณ ์ธ์ฉ ํ์๋ 0ํ ์ด์ 10,000ํ ์ดํ์ ๋๋ค.
ํ์ด
h-index์ ๊ท์น์ด h๋ฒ ์ด์ ์ธ์ฉ๋ ๋ ผ๋ฌธ์ ๊ฐ์๊ฐ h๋ฒ ์ด์์ด ๋๋ ์ต๋๊ฐ์ ์ฐพ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์, ๋จ์ํ ์ค๋ฆ์ฐจ์, ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ ๋ค์ ์ธ๋ฑ์ค๋ฅผ ํตํด ํน์ ์ธ๋ฑ์ค ์ด์ ์ ๋ ผ๋ฌธ์ด ๋ช๊ฐ๊ฐ ์๋์ง ํ์ธํ๋ ๊ฒ์ผ๋ก ํด๊ฒฐํ ์ ์์ต๋๋ค.
์ ๋ ์ด๋ฒ ๋ฌธ์ ๊ฐ ์ด๋ถ ํ์์ผ๋ก๋ ํ์ดํ ์ ์์ ๊ฒ ๊ฐ์์, ์ฐ์ตํ ๊ฒธ ์ด๋ถํ์์ผ๋ก ํ์ดํ์ต๋๋ค. ๋ฐ๋ก ์ ๋ ฌ์ ํ์ง ์๊ณ , ํ์ํ ๋์์ ๋ฐฐ์ด์ ์ธ๋ฑ์ค๋ก ์ ํ์ต๋๋ค. ์ด๋ถํ์์ ํตํด ํน์ ํ ์ธ๋ฑ์ค๊ฐ ์ค์ ๋๋ฉด ํด๋น ์ธ๋ฑ์ค๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ ผ๋ฌธ์ ๊ฐ์๋ฅผ ์นด์ดํธํด์ ๋ง์ฝ ์ธ๋ฑ์ค๋ณด๋ค ๋ฐํ๋ ๋ ผ๋ฌธ์ ๊ฐ์๊ฐ ๊ฐ๊ฑฐ๋ ๋ง๋ค๋ฉด ํ์ ๋ฒ์์ ์ผ์ชฝ์ ์ฆ๊ฐ์ํค๊ณ , ์๋ค๋ฉด ํ์ ๋ฒ์์ ์ค๋ฅธ์ชฝ์ ๊ฐ์์์ผ ํ์๋ฒ์๋ฅผ ์ขํ๋๊ฐ๋๋ค.
์ฝ๋
import Foundation
func isHIndex (_ citations:[Int], _ index:Int) -> Bool {
return citations.filter({ $0 >= index }).count >= index
}
func binarySearch (_ start:Int, _ end:Int, _ citations:[Int]) -> Int{
var head = start
var tail = end
var mid = (start + end) / 2
var hIndex = 0
while head <= tail {
mid = (head + tail) / 2
if isHIndex(citations, mid) {
head = mid + 1
hIndex = mid
}else {
tail = mid - 1
}
}
return hIndex
}
func solution(_ citations:[Int]) -> Int {
return binarySearch(0, citations.count, citations)
}
'๐๐ปโโ๏ธ ํผ-์์ค > ๐ฃ ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋๊ธ
์ด ๊ธ ๊ณต์ ํ๊ธฐ
-
๊ตฌ๋
ํ๊ธฐ
๊ตฌ๋ ํ๊ธฐ
-
์นด์นด์คํก
์นด์นด์คํก
-
๋ผ์ธ
๋ผ์ธ
-
ํธ์ํฐ
ํธ์ํฐ
-
Facebook
Facebook
-
์นด์นด์ค์คํ ๋ฆฌ
์นด์นด์ค์คํ ๋ฆฌ
-
๋ฐด๋
๋ฐด๋
-
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
-
Pocket
Pocket
-
Evernote
Evernote