1. 문제 풀이 아이디어
Map
을 활용하여 데이터를 효율적으로 관리하고 처리할 수 있다.
2. 나의 정답 코드
class Solution {
public int[][] solution(int[][] data, String ext, int val_ext, String sort_by) {
List<int[]> list = new ArrayList<>();
Map<String, Integer> map = new HashMap<>() {{
put("code", 0);
put("date", 1);
put("maximum", 2);
put("remain", 3);
}};
for (int i = 0; i < data.length; i++) {
if (data[i][map.get(ext)] < val_ext) {
list.add(data[i]);
}
}
list.sort((o1, o2) -> o1[map.get(sort_by)] - o2[map.get(sort_by)]);
return list.toArray(new int[list.size()][]);
}
}
3. 정리
Map
에 컬럼 이름과 인덱스를 저장하여 컬럼을 효율적으로 참조한다.
data
배열을 순회하면서,ext
컬럼의 값이val_ext
보다 작은 행을list
에 추가한다.
list
를sort_by
컬럼의 값을 기준으로 오름차순 정렬한다.
- 정렬된 결과를 배열 형태로 변환하여 반환해 문제를 해결한다.
Share article