일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- K번째수
- 롬복 어노테이션
- 쿠버네티스
- 커링
- @Getter
- H-index
- @EnableScheduling
- 검색 기능 확장
- 프로그래머스
- 스택/큐
- Java
- 코딩 테스트
- 전화번호 목록
- 루씬 인 액션
- 알고리즘
- 모던 자바 인 액션
- 해시
- @Setter
- 고차원 함수
- 완주하지 못한 선수
- kubenetes
- 스프링 스케쥴러
- 다리를 지나는 트럭
- 기능개발
- 크론 표현식
- 영속 자료구조
- 가장 큰 수
- @Data
- @configuration
- 정렬
- Today
- Total
목록정렬 (3)
Today I Learned

이전 문제와 같은 Level2 문제가 맞나 싶을 정도로 금방 풀린 문제 인용횟수가 많은 논문 순서로 정렬해서 하나씩 카운트하다보면 n번 인용된 논문과 인용횟수가 교차하는 지점이 나온다. 그때의 인용 횟수가 결과값. 주의할 점은 결과값이 꼭 배열 안의 값 중 하나가 아닐 수 있다는 점? ex) [10, 9, 8, 7, 3] -> return 4 코드 import java.util.*; class Solution { public int solution(int[] citations) { int cnt = 0; Arrays.sort(citations); int length = citations.length; for(int i = 0; i

일단 푸는데 엄청 오래 걸렸다. [3, 30, 34] 같은 케이스를 [34, 3, 30]으로 정렬해야했기에 단순 비교도, char[]로 변환해 자릿수 별로 비교하는 방법도 어려웠다. 고민끝에 나온 첫번째 아이디어는 원소 크기가 최대 1000 이하라는 점을 이용해서 전부 3자리로 맞춰서 비교하는 방법이었다. 빈 자릿수는 전부 마지막 숫자로 채울 경우 원하는 방식으로 정렬이 가능했다. 3 → 3333 30 → 3000 34 → 3444 변환한 3자리 값을 key, 원본 값을 value로 넣고 TreeMap으로 구현하면 정렬도 따로 해줄 필요 없을 것 같았다. 코드 import java.util.*; class Solution { public String solution(int[] numbers) { Stri..

자르고, 정렬하고, 뽑고 끝! 코드 import java.util.*; class Solution { public int[] solution(int[] array, int[][] commands) { int[] answer = new int[commands.length]; int[] copyArray = {}; for(int i = 0; i < commands.length; i++){ int[] command = commands[i]; copyArray = Arrays.copyOfRange(array, command[0]-1, command[1]); Arrays.sort(copyArray); answer[i] = copyArray[command[2]-1]; } return answer; } } 결과 자바..