일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- K번째수
- 스프링 스케쥴러
- 알고리즘
- kubenetes
- @Setter
- 해시
- Java
- 정렬
- 코딩 테스트
- 다리를 지나는 트럭
- @EnableScheduling
- @Data
- 완주하지 못한 선수
- 영속 자료구조
- 프로그래머스
- 가장 큰 수
- 스택/큐
- H-index
- @Getter
- 모던 자바 인 액션
- @configuration
- 크론 표현식
- 커링
- 기능개발
- 고차원 함수
- 롬복 어노테이션
- 검색 기능 확장
- 루씬 인 액션
- 전화번호 목록
- 쿠버네티스
- Today
- Total
목록코딩 테스트 (10)
Today I Learned
일단 푸는데 엄청 오래 걸렸다. [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; } } 결과 자바..
*풀이 1. 장르별 총 재생횟수를 넣는다.(Map) 2. 장르별 음악목록(재생횟수, 고유번호)을 넣는다.(Map) 3. 장르별 총 재생횟수를 정렬한다. 4. 해당하는 음악목록을 뽑는다.(ArrayList) 5. 음악목록을 재생횟수 순으로 정렬한다. 6. 베스트앨범에 순서대로 넣는다. 좀 더 간결하게 풀 수 있는 방법은 없을까? 코드 import java.util.*; import java.util.Collections; class Solution { public int[] solution(String[] genres, int[] plays) { int[] answer = {}; ArrayList bestMusic = new ArrayList(); Map genresCnt = new HashMap(); M..
해시에 의상 종류 별 개수를 넣어야되는건 알겠는데, 의상 조합을 어떻게 계산해야될지 모르겠어서 결국 컨닝함 (한 종류의 의상 수 + 1(안입는 경우의 수)) * (한 종류의 의상 수 + 1(안입는 경우의 수)) - 1(아무것도 안 입는 경우의 수) 이거랍니다....... 코드 import java.util.*; class Solution { public int solution(String[][] clothes) { Map cHash = new HashMap(); for(String[] c : clothes){ //c[0] : 의상이름, c[1] : 의상종류 cHash.put(c[1], cHash.getOrDefault(c[1],0)+1); } int result = 1; for(String key : c..