알고리즘 문제 풀이/프로그래머스

[프로그래머스] H-Index - python[ 정렬 ]

2023. 9. 11. 13:57
목차
  1. 성능 요약
  2. 구분
  3. 채점결과
  4. 문제 설명
  5. 나의 틀린 코드
  6. 나의 맞춘 코드

[level 2] H-Index - 42747

문제 링크

성능 요약

메모리: 10.2 MB, 시간: 0.00 ms

구분

코딩테스트 연습 > 정렬

채점결과

Empty

문제 설명

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입니다.

문제가 잘 안풀린다면😢

힌트가 필요한가요? [코딩테스트 연습 힌트 모음집]으로 오세요! → 클릭

※ 공지 - 2019년 2월 28일 테스트 케이스가 추가되었습니다.


  1. https://en.wikipedia.org/wiki/H-index "위키백과" ↩

나의 틀린 코드

값을 내림차순으로 정렬해두고, h값을 1씩 증가시켜 가며 반복하여 확인하는 과정이 필요할듯
근데 이거 시간초과 날거 같은데, 일단 구현해봄

1문제에서 시간초과가 발생함 다른 방법을 고민해봐야 할듯함.

def solution(citations):
    citations.sort(reverse=True)
    answer = citations[-1]
    print(citations)
    while True:
        count = 0
        flag = False
        for citation in citations:
            if count >= answer:
                answer +=1
                break
            if citation >= answer:
                count+=1
            else:
                if count < answer:
                    flag = True
                    break
        if flag:       
            return answer-1

나의 맞춘 코드

너무 복잡하게 로직을 생각했나보다.

enumerate로 idx 값을 자연스럽게 얻어와서 현재 값과 비교하면 h의 조건에 맞출 수 있었다.

def solution(citations):
    citations.sort(reverse=True)
    for idx , citation in enumerate(citations):
        if idx >= citation:
            return idx
    return len(citations)

'알고리즘 문제 풀이 > 프로그래머스' 카테고리의 다른 글

[프로그래머스] 모음 사전- python[ Permutation ]  (0) 2023.09.13
[프로그래머스] 소수 찾기- python[ Brute Force]  (0) 2023.09.11
[프로그래머스] 가장 큰 수 - python[ 정렬 ]  (2) 2023.09.06
[프로그래머스] 디스크 컨트롤러 - python[ Min Heap ]  (0) 2023.09.05
[프로그래머스] 더 맵게- python[ Min Heap ]  (1) 2023.09.04
  1. 성능 요약
  2. 구분
  3. 채점결과
  4. 문제 설명
  5. 나의 틀린 코드
  6. 나의 맞춘 코드
'알고리즘 문제 풀이/프로그래머스' 카테고리의 다른 글
  • [프로그래머스] 모음 사전- python[ Permutation ]
  • [프로그래머스] 소수 찾기- python[ Brute Force]
  • [프로그래머스] 가장 큰 수 - python[ 정렬 ]
  • [프로그래머스] 디스크 컨트롤러 - python[ Min Heap ]
잘잔디
잘잔디
4학년이 되고 취업 준비를 위해 2023-01-01부터 공부한 내용을 정리한 블로그입니다.
잘잔디
MBCS 공부일지
잘잔디
전체
오늘
어제
  • 분류 전체보기 (217)
    • 파이썬 (28)
      • 파이썬 이론 (8)
      • NumPy (3)
      • Pandas (6)
      • 파이썬 시각화 (8)
      • 응용 (2)
    • Java (3)
    • Back (38)
      • DataBase이론 (12)
      • MySQL (2)
      • JSP (8)
      • JSTL (2)
      • Spring (0)
      • Django (8)
      • MongoDB (6)
      • FastAPI (0)
    • Front (8)
      • HTML (3)
      • CSS (2)
      • JS (1)
    • 회고록 (10)
    • 알고리즘 문제 풀이 (95)
      • 알고리즘 이론 공부 (14)
      • 프로그래머스 (69)
      • 백준 (12)
    • 머신러닝 (0)
    • 딥러닝 (0)
    • Git (3)
    • R 프로그래밍 (3)
    • 빅데이터 관리 (16)
      • 리눅스 (4)
      • Hadoop (12)
    • AWS (2)
    • 일상 (10)
      • 책 리뷰 (5)
      • TOEIC (2)
      • 자잘하게 공부한 것들 (2)
    • 사이버보안 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • web
  • backend
  • db
  • Java
  • HTML
  • JavaScript
  • OOP
  • Database
  • CSS
  • 독산역
  • 객체지향
  • 즐거웠다
  • 골드
  • 이중우선순위 큐
  • 백준
  • JS
  • git
  • playdata
  • Encore

최근 댓글

최근 글

hELLO · Designed By 정상우.
잘잔디
[프로그래머스] H-Index - python[ 정렬 ]
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.