일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- HTML
- HashMap
- 자바
- Python
- 자료구조
- hash
- 프로그래머스
- 네이버
- javac
- HashSet
- coding test
- Eclipse
- 우선순위큐
- programmers
- Java
- 해쉬
- Coding
- point queue
- 스파르타코딩클럽
- SQL
- 코딩테스트
- 정렬
- Queue
- CSS
- Naver
- compare()
- Stack
- array
- string
- 배열
- Today
- Total
youngik
정렬 (H-index) 본문
이 문제도 H-index에 대한 이해가 처음에 부족해서 1번 삽질을 하고 코드를 구성했던 것 같다.
H-index의 H값이 citations에 주어진 값 중에서 1개로 결정되는 줄 알고 처음에 코드를 짰는데
질문하기에서 test케이스 중 {6, 5, 4, 1, 0} 일때 H의 값이 4가 아니라 3이 된다는 것이다.
H = 4일때 : 4보다 크거나 같은 값이 3개, 4보다 작거나 같은 값 3개 => 충족 X
H = 3일때 : 3보다 크거나 값은 값 3개, 3보다 작거나 같은 값 2개 => 충족 O
먼저 H-index에 대한 부분을 다시 분석을 해보았을 때
1. H-index는 배열에 있는 값들 중에서 H보다 크거나 값은 값이 H개 이상, H보다 작은 값이 H보다 작거나 같아야 함
(*간단히 생각해보면 H의 값을 설정하고 upper_count(h보다 크거나 같은 수) >= H 이고
down_count(h보다 작거나 같은 수) <= H 조건을 만족해야한다.
다시 코드를 구성했을 때 test case중 1개를 통과하지 못했는데, 그 이유를 생각해보니 i의 첫번째 값을
citations의 최솟값으로 지정했다. (*citations에서 가장 작은 값이 만족을 못할수도 있음
ex) {2,2,2}일때 upper=3개, down=3개 이므로 만족 X
그래서 i의 시작값을 0부터 시작하니, 말끔하게 통과했다.
나는 주로 코딩 테스트를 해보면서, programmers 사이트에서는 출력값을 빠르게 확인해보기 어려운 것 같아
eclipse로 중간마다 출력값을 확인해보면서 코드를 짠다. (더 나은 방법을 아시는 분은 알려주시길,,ㅠ)
'programmers' 카테고리의 다른 글
완전탐색 (모의고사) (0) | 2021.04.07 |
---|---|
스택/큐 (프린터) (0) | 2021.04.07 |
스택/큐 (기능개발) (0) | 2021.04.07 |
스택/큐 (주식가격) (0) | 2021.04.07 |
스택/큐 (다리를 지나는 트럭) (0) | 2021.04.06 |