728x90
해시를 사용하면 공간 복잡도를 많이 줄일 수 있는 간단한 문제입니다.
class Solution {
public int[][] solution(int[][] data, String ext, int val_ext, String sort_by) {
Map<String, Integer> fields = new HashMap<>();
fields.put("code", 0);
fields.put("date", 1);
fields.put("maximum", 2);
fields.put("remain", 3);
int[][] list = new int[data.length][fields.size()];
int j = 0;
for (int i = 0; i < data.length; i++) {
int val = data[i][fields.get(ext)];
int sortBy = data[i][fields.get(sort_by)];
if (val < val_ext) {
list[j] = data[i];
j++;
}
}
Arrays.sort(list, (e1, e2) -> e1[fields.get(sort_by)] - e2[fields.get(sort_by)]);
int k = 0;
int[][] answer = new int[j][4];
for (int i = 0; i < list.length; i++) {
if (list[i][0] != 0) {
answer[k++] = list[i];
}
}
return answer;
}
}
반응형
'자료구조 및 알고리즘' 카테고리의 다른 글
알고리즘) 숨바꼭질 3(백준 13549번, BFS/다익스트라) (0) | 2024.08.29 |
---|---|
알고리즘) 더 맵게(프로그래머스, 힙 활용, Java) (0) | 2024.08.07 |
힙 정렬(Heap Sort) 구현하기(Java) (0) | 2024.08.07 |
배열(Array)을 이용한 힙(Heap) 구현 (0) | 2024.08.06 |
알고리즘) 네트워크(프로그래머스, BFS 활용, Java) (0) | 2024.08.03 |