๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿค– ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์ค€๋น„/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

#ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ํŒŒ์ด์ฌ Lv.2 #H-index

๋ฌธ์ œ์„ค๋ช…
: H-Index๋Š” ๊ณผํ•™์ž์˜ ์ƒ์‚ฐ์„ฑ๊ณผ ์˜ํ–ฅ๋ ฅ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ง€ํ‘œ์ž…๋‹ˆ๋‹ค. ์–ด๋А ๊ณผํ•™์ž์˜ H-Index๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐ’์ธ h๋ฅผ ๊ตฌํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์œ„ํ‚ค๋ฐฑ๊ณผ์— ๋”ฐ๋ฅด๋ฉด, H-Index๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌํ•ฉ๋‹ˆ๋‹ค. ์–ด๋–ค ๊ณผํ•™์ž๊ฐ€ ๋ฐœํ‘œํ•œ ๋…ผ๋ฌธ nํŽธ ์ค‘, h๋ฒˆ ์ด์ƒ ์ธ์šฉ๋œ ๋…ผ๋ฌธ์ด hํŽธ ์ด์ƒ์ด๊ณ  ๋‚˜๋จธ์ง€ ๋…ผ๋ฌธ์ด h๋ฒˆ ์ดํ•˜ ์ธ์šฉ๋˜์—ˆ๋‹ค๋ฉด h์˜ ์ตœ๋Œ“๊ฐ’์ด ์ด ๊ณผํ•™์ž์˜ H-Index์ž…๋‹ˆ๋‹ค. ์–ด๋–ค ๊ณผํ•™์ž๊ฐ€ ๋ฐœํ‘œํ•œ ๋…ผ๋ฌธ์˜ ์ธ์šฉ ํšŸ์ˆ˜๋ฅผ ๋‹ด์€ ๋ฐฐ์—ด citations๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ์ด ๊ณผํ•™์ž์˜ H-Index๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑ

 

๋ฌธ์ œํ’€์ด

: i ๋ณด๋‹ค ํฐ ๋…ผ๋ฌธ์˜ ๊ฐœ์ˆ˜๋ฅผ ์„ธ์„œ i์™€ ๊ฐ™๊ฑฐ๋‚˜ ๋” ํฌ๋ฉด i๋ฅผ ๋ฆฌํ„ด

  1. ์šฐ์„  sort๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ •๋ ฌ์„ ํ•ด์ฃผ๊ณ 
  2. if citations[i] >= article_count-i๋Š” ์ฃผ์–ด์ง„ h๋ฒˆ ์ด์ƒ ์ธ์šฉ๋œ ๋…ผ๋ฌธ์ด hํŽธ ์ด์ƒ์ด๋ผ๋Š” ์กฐ๊ฑด๊ณผ
  3. citations[i]๋Š” i๋ฒˆ ๋…ผ๋ฌธ์ด ์ธ์šฉ๋œ ํšŸ์ˆ˜์ด๊ณ 
  4. article_count-i๋Š” ์ธ์šฉ๋œ ๋…ผ๋ฌธ์˜ ๊ฐœ์ˆ˜๋ฅผ ์ตœ๋Œ“๊ฐ’๋ถ€ํ„ฐ ํ•˜๋‚˜์”ฉ ์ค„์—ฌ๋‚˜๊ฐ„ ๊ฒƒ(์ตœ๋Œ“๊ฐ’์„ ์ฐพ์•„์•ผ ํ•˜๋ฏ€๋กœ ๊ฐ€์žฅ ํฐ ๊ฐ’๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค.)
  5. ๊ทธ๋ฆฌ๊ณ  ๋ฆฌ์ŠคํŠธ๋Š” ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ๋œ ์ƒํƒœ์ด๋ฏ€๋กœ i๋ฒˆ์งธ ์ดํ›„๋Š” ๋ชจ๋‘ i๋ฒˆ์งธ๋ณด๋‹ค ํฐ ๊ฐ’์„ ๊ฐ€์งˆ ๊ฒƒ

 

# solution

def solution(citations):
    citations.sort()
    article_count = len(citations)

    for i in range(article_count):
        if citations[i] >= article_count-i:
            return article_count-i
    return 0

 

# ๋‹ค๋ฅธ ์‚ฌ๋žŒ ํ’€์ด

euumerate์— start๋ฅผ ์ด์šฉํ•ด์„œ ํ˜„์žฌ ์ž์‹ ๋ณด๋‹ค ํฐ ์ˆ˜๊ฐ€ ๋ช‡๊ฐœ ์žˆ๋Š”์ง€ ํŒ๋ณ„

  1. sort๋กœ ์ •๋ ฌํ•ด์„œ ๊ฐ€์žฅ ํฐ๊ฐ’๋ถ€ํ„ฐ ์ž‘์€๊ฐ’์œผ๋กœ ์ •๋ ฌ
  2. enumerate๋กœ (index, value)ํ˜•ํƒœ๋กœ ๋ฌถ๋Š”๋‹ค.
  3. ์ตœ๋Œ“๊ฐ’(start = 1)๋ถ€ํ„ฐ ๊ฐ value์— ๋Œ€ํ•ด ์ตœ์†Ÿ๊ฐ’ value์˜ ๊ฐ’์„ min์œผ๋กœ ์ถ”์ถœํ•˜๊ณ 
  4. ์ด ์ถ”์ถœ๋œ ๊ฐ’์€ enumerate๊ฐ€ ๋๋‚˜๋Š” citations ๋ฆฌ์ŠคํŠธ์˜ ํฌ๊ธฐ์— ํ•ด๋‹นํ•˜๋Š” ๊ฐฏ์ˆ˜๊ฐ€ ๋‚˜์˜จ๋‹ค.
  5. ์ด๋“ค์„ map์œผ๋กœ ๋ฌถ์œผ๋ฉด, ํ•œ value์˜ ์ž…์žฅ์—์„œ ๋ณด๋Š” ์ตœ์†Ÿ๊ฐ’ value์˜ ์ง‘ํ•ฉ์ด ๋‚˜์˜จ๋‹ค. ์ฆ‰ h๊ฐ’๋“ค์˜ ์ง‘ํ•ฉ์ด๋‚˜์˜จ๋‹ค.
  6. h๊ฐ’์ค‘ ์ตœ๋Œ€๊ฐ’์„ max๋กœ ๋ฝ‘์•„์„œ ์ถœ๋ ฅ
def solution(citations):
    citations.sort(reverse=True)
    answer = max(map(min, enumerate(citations, start=1)))
    return answer

 

 

 

 

 

https://programmers.co.kr/learn/courses/30/lessons/42747

 

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

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

programmers.co.kr