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

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

728x90
๋ฐ˜์‘ํ˜•

๐Ÿ’กsolutions )

โœ… ์ฒ˜์Œ ๋ฌธ์ œ๋ฅผ ํ’€๊ณ  ํ…Œ์ŠคํŠธ์ผ€์ด์Šค ๋ช‡๊ฐœ๋ฅผ ํ†ต๊ณผํ•˜์ง€ ๋ชปํ•ด์„œ ์งˆ๋ฌธํ•˜๊ธฐ๋ฅผ ์ฐธ๊ณ ํ•˜๋ฉฐ ์˜ˆ์™ธ ์ƒํ™ฉ์„ ์ฒ˜๋ฆฌํ•ด์ฃผ์—ˆ๋‹ค.

โœ… ์ด ์„ธ ๊ฐ€์ง€ ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ฃผ์—ˆ๋Š”๋ฐ

โ‘  ๋ชจ๋“  ๋…ผ๋ฌธ์˜ ์ธ์šฉ ํšŸ์ˆ˜๊ฐ€ ์ „์ฒด ๋…ผ๋ฌธ ๊ฐœ์ˆ˜ ๋ณด๋‹ค ํฐ ๊ฒฝ์šฐ -> ๋…ผ๋ฌธ์˜ ์ˆ˜ ๋ฆฌํ„ด

โ‘ก ๋ชจ๋“  ๋…ผ๋ฌธ์˜ ์ธ์šฉ ํšŸ์ˆ˜๊ฐ€ 0์ธ ๊ฒฝ์šฐ -> 0 ๋ฆฌํ„ด

โ‘ข ๋ชจ๋“  ๋…ผ๋ฌธ์˜ ์ธ์šฉ ํšŸ์ˆ˜๊ฐ€ ๋™์ผํ•œ ๊ฒฝ์šฐ -> ๋…ผ๋ฌธ์˜ ์ˆ˜ ๋ฆฌํ„ด

 

๐ŸŽซcode )

def solution(citations):
    citations.sort(reverse = True)
    max_v = citations[0]
    min_v = citations[-1]

    # ์„ธ ๊ฐ€์ง€ ์˜ˆ์™ธ์ฒ˜๋ฆฌ
    if min_v > len(citations): # ๋ชจ๋“  ๋…ผ๋ฌธ์˜ ์ธ์šฉ ํšŸ์ˆ˜๊ฐ€ ์ „์ฒด ๋…ผ๋ฌธ ๊ฐœ์ˆ˜ ๋ณด๋‹ค ํฐ ๊ฒฝ์šฐ
        return len(citations) # ๋…ผ๋ฌธ์˜ ์ˆ˜๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค
    if max_v == 0: # ๋ชจ๋“  ๋…ผ๋ฌธ์˜ ์ธ์šฉ ํšŸ์ˆ˜๊ฐ€ 0์ธ ๊ฒฝ์šฐ
        return 0
    
    # H-Index ๊ตฌํ•˜๋Š” ๋กœ์ง
    while (max_v!=0):
        cnt = 1
        for i, c in enumerate(citations):
            if c < max_v:
                cnt = i
                break
            elif c == max_v: # ๋ชจ๋“  ๋…ผ๋ฌธ์˜ ์ธ์šฉ ํšŸ์ˆ˜๊ฐ€ ๋™์ผํ•œ ๊ฒฝ์šฐ(์˜ˆ์™ธ์ฒ˜๋ฆฌ)
                cnt += 1
        if cnt >= max_v:
            return max_v
        max_v -= 1

 

๐Ÿ“Œ description )

๋ฌธ์ œ์ถœ์ฒ˜ : https://programmers.co.kr/learn/courses/30/lessons/42747?language=python3

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - 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ํšŒ ์ดํ•˜์ž…๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

citationsreturn
[3, 0, 6, 1, 5] 3

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

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

๋ฐ˜์‘ํ˜•