본문 바로가기

CodingTest/Programmers

[ 프로그래머스 ] H-index

/  1번째 제출  /

 

def solution(citations):
    answer = 0
    citations.sort(reverse = True)
    h = citations[-1]
    for i in range(len(citations)-1,0, -1):
        if citations[i] >= i+1:
            h = i+1
            break
        
    return h

 

채점 결과
정확성: 100.0
합계: 100.0 / 100.0
 
꽤 후딱 풀 수 있기는 했는테 테스트 케이스가 좀 더 주어져야 이해가 쉬웠던 것 같습니다.
딱 일치할 때만을 고려한 테스트 케이스만 주어졌기에 너무 단순하게 생각해 처음 풀이에서 틀렸기 때문입니다.
'h = citations[i] ' 로 고려했지만, 사실 생각해보면 h의 최대값이기 때문에 내림차순 배열 기준 citations의 값을 넣어준다면,
조건에 맞는 h 중 최소값이 들어갑니다.
따라서 h의 인덱스 값 : 내림차순 리스트의 앞에서부터 세어서 조건에 걸리는 값을 업데이트해주었습니다.
깔끔하게 빨리 풀어서 기분이 좋은 문제였습니다.