๐Ÿ’ก Coding Test/Programmers

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์ •๋ ฌ Lv2. H-Index (Python/ํŒŒ์ด์ฌ)

soozkim 2022. 4. 1. 17:49
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต] ์ •๋ ฌ - Lv2. H-Index
 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - H-Index

H-Index๋Š” ๊ณผํ•™์ž์˜ ์ƒ์‚ฐ์„ฑ๊ณผ ์˜ํ–ฅ๋ ฅ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ง€ํ‘œ์ž…๋‹ˆ๋‹ค. ์–ด๋А ๊ณผํ•™์ž์˜ H-Index๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐ’์ธ h๋ฅผ ๊ตฌํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์œ„ํ‚ค๋ฐฑ๊ณผ1์— ๋”ฐ๋ฅด๋ฉด, H-Index๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌํ•ฉ๋‹ˆ๋‹ค. ์–ด๋–ค ๊ณผํ•™์ž๊ฐ€ ๋ฐœํ‘œ

programmers.co.kr

๋ฌธ์ œ ์„ค๋ช…

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ํšŒ ์ดํ•˜์ž…๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

citations return
[3, 0, 6, 1, 5] 3

์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

์ด ๊ณผํ•™์ž๊ฐ€ ๋ฐœํ‘œํ•œ ๋…ผ๋ฌธ์˜ ์ˆ˜๋Š” 5ํŽธ์ด๊ณ , ๊ทธ์ค‘ 3ํŽธ์˜ ๋…ผ๋ฌธ์€ 3ํšŒ ์ด์ƒ ์ธ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‚˜๋จธ์ง€ 2ํŽธ์˜ ๋…ผ๋ฌธ์€ 3ํšŒ ์ดํ•˜ ์ธ์šฉ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด ๊ณผํ•™์ž์˜ H-Index๋Š” 3์ž…๋‹ˆ๋‹ค.

H-Index ๋ž€?

- ์ฐธ๊ณ  ์‚ฌ์ดํŠธ

 

[์—ฐ๊ตฌ๋…ผ๋ฌธ์„ ์œ„ํ•œ ํ•ต์‹ฌ 10๋‹จ๊ณ„] H-์ง€์ˆ˜(H-Index) ๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

์ผ๋ฐ˜์ ์œผ๋กœ ํŠน์ • ์—ฐ๊ตฌ์›์˜ ์—ฐ๊ตฌ์„ฑ๊ณผ๋ฅผ ํ‰๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ๋…ผ๋ฌธ์„ ๋ฐœํ‘œ ํ•˜์˜€๋Š”์ง€๋ฅผ ๋ณด๊ฒŒ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‹จ์ˆœํžˆ ๋ฐœํ‘œํ•œ ๋…ผ๋ฌธ ์ˆ˜๋กœ๋งŒ ๊ทธ ์—ฐ๊ตฌ์›์˜ ์—ฐ๊ตฌ ์—…์ ์„ ํ‰๊ฐ€ ํ•˜๊ธฐ์—๋Š” ๋ฐœํ‘œํ•œ ๋…ผ๋ฌธ

www.ibric.org

์ œ์ถœ

- citations๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ

- ์ •๋ ฌํ•œ citations์˜ 0๋ฒˆ์งธ ์ธ์šฉํšŸ์ˆ˜ ๊ฐ’๊ณผ ์ด ๋…ผ๋ฌธ์˜ ์ˆ˜ - ์ธ๋ฑ์Šค ๋ฒˆํ˜ธ๋ฅผ ๋น„๊ตํ•˜๊ณ  ์ธ๋ฑ์Šค ๋ฒˆํ˜ธ์˜ ์œ„์น˜์— ์žˆ๋Š” ์ธ์šฉํšŸ์ˆ˜์˜ ๊ฐ’์ด ํฌ๋‹ค๋ฉด return ํ•ด์ค€๋‹ค. ์ž‘์€ ๊ฒฝ์šฐ์—๋Š” ๋ฆฌํ„ดํ•˜์ง€ ์•Š์Œ

def solution(citations):
    answer = 0
    citations = sorted(citations)
    c_len = len(citations)
    for i in range(c_len):
        if citations[i] >= c_len - i:
            return c_len - i
    return answer
728x90