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

2020. 11. 26. 16:34·SW개발/코딩테스트

문제 설명

 

def solution(citations):
    
    citations.sort()
    for i in range(len(citations)):
        if citations[i] >= len(citations)-i:
            return len(citations)-i
            
    return 0

 

코드 설명

먼저 citations 리스트를 정렬을 해줌으로써 인용된 횟수를 오름차순으로 정렬합니다. 그 후 citations 리스트의 길이만큼 반복문을 수행하고 만약 논문에 인용된 횟수가 논문의 수 - i 라면 논문의수 - i 를 return 합니다. 만족하지 못한다면 0을 리턴하여 줍니다.

 

Point : 오름차순 정렬을 통하여 가장 적은 인용 횟수를 맨 앞으로 배치하여 줍니다. 이를 통하여 불필요한 반복문을 없앨 수 있습니다.

이 문제에서 가장 중요한 점은 h index 에 대한 이해입니다. 아래의 예시를 보며 설명하겠습니다.

citations = [1, 18, 19, 21] 로 입력이 주어질 경우 h-index는 3이 됩니다. 논문의 인용된 횟수를 h index로 지정하는 것이 아닌, 3회 이상 인용된 논문이 3개 존재하므로 h-index 는 1이 아닌 3이 됩니다. 즉, citations 리스트의 길이에서 i 만큼을 뺀 값을 리턴하여야 한다는 뜻입니다. 다른 예시도 한번 살펴보겠습니다.

citations = [1, 2, 5, 23, 33, 35] 로 입력이 주어질 경우 h-index는 4가 됩니다. 반복문을 돌아가면서 수행하다 보면 i = 2 에서 if 조건문을 만족하게 됩니다. (citations[2]=5 >= 6-2) 따라서 6-2 = 4를 리턴하게 됩니다.  

728x90

'SW개발 > 코딩테스트' 카테고리의 다른 글

[프로그래머스]기능 개발-스택/큐  (0) 2020.11.28
[프로그래머스]주식가격-스택/큐  (0) 2020.11.27
[프로그래머스]가장 큰 수-정렬  (0) 2020.11.25
[프로그래머스]K번째수-정렬  (0) 2020.11.24
[프로그래머스]네트워크-DFS/BFS  (0) 2020.11.20
'SW개발/코딩테스트' 카테고리의 다른 글
  • [프로그래머스]기능 개발-스택/큐
  • [프로그래머스]주식가격-스택/큐
  • [프로그래머스]가장 큰 수-정렬
  • [프로그래머스]K번째수-정렬
Leffe_pt
Leffe_pt
개발자로서 성장하면서 배워온 지식과 경험을 공유하는 공간입니다.
  • Leffe_pt
    Leffe's tistory
    Leffe_pt
  • 전체
    오늘
    어제
    • 분류 전체보기 (307)
      • SW개발 (303)
        • 코딩테스트 (172)
        • 개발이야기 (23)
        • IT 용어 (17)
        • Python (22)
        • Django (46)
        • Flask (2)
        • Database (1)
        • SQLAlchemy (0)
        • Javascript (5)
        • Linux, Unix (3)
        • JAVA (2)
        • Spring (10)
      • 회고 (4)
      • 사진 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Contributor
    g
    django
    컨트리뷰터
    트리 #AVL #알고리즘 #자료구조
    배달비 공유
    오픈소스
    음식
    배공파용
    라이프 스타일
    플레이스토어
    배달
    어플리케이션
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Leffe_pt
[프로그래머스]H-Index-정렬
상단으로

티스토리툴바