프로그래머스 코딩테스트 정렬 - <H-INDEX>

김찬울·2021년 6월 18일

문제설명 : h의 최대값구하기. h보다 큰 citations의 인덱스 값이 h보다 많아야하고 그 역이 h보다 작아야한다.

코드설명 : 굳이 range 를 사용하는 이유는 h 이상또는 이하의 요소 개수를 구할 수 있음. i는 h이하 l-i는 h이상의 요소 개수.

식 구상은 두 방식으로 할 수 있다. 역순 배치해서 l-i 가 h이상인 경우를 찾거나 오름차순으로 h가 l-i이상이거나 할때이다.
특징은 if문 안에 들어오면서 끝나는데 일단 역순일때는 l-i가 h이상인 경우를찾았을 때 내림차순으므로 그 현 요소보다 다음에 요소가 무조건 작기에 그렇다.

해당 코드처럼 오름차순인 경우에는 특히 citataions[i] 즉, h가 h이상의 개수보다 큰 것을 만났을 때 그 이후에 어떤 요소든 답이 될 수 없기에 바로 반환한다.

  • 추가적으로 역순을 안하는 경우는 최소한 h 이상인 경우가 h만큼 있어야하므로 요소 개수가 많아질 경우와 값이 큰 경우 시간복잡도가 한없이 증가한다.
profile
코린코린이

0개의 댓글