문제 설명
https://school.programmers.co.kr/learn/courses/30/lessons/250121?language=java
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
왜 1번에서 바로 10번을 푸냐면 그냥 레벨 순으로 풀고 싶기 때문이다. 별 이유 없다.
이 문제는 너무 쉬웠다. 이런 문제만 코테에 나오면 좋겠다 ㅎㅎ
알고리즘
기준 값(ext, val_ext)과 정렬할 값(sort_by)가 4가지 중에 나오므로 map의 key로 두고 그 배열들의 index 값으로 기준 값보다 작은 것들을 넣고, 정렬해야겠다고 생각을 했다.
여기서 배운 것은 List<int[]>를 int[][]로 변환하는 것이다. 자꾸 안쓰면 헷갈린다.
int[][] answer = validList.stream().toArray(int[][]::new);
해결 방법
public int[][] solution(int[][] data, String ext, int val_ext, String sort_by) {
Map<String, Integer> map = new HashMap<>();
map.put("code", 0);
map.put("date", 1);
map.put("maximum", 2);
map.put("remain", 3);
List<int[]> validList = new ArrayList<>();
for (int[] d : data) {
if (d[map.get(ext)] < val_ext) {
validList.add(d);
}
}
int[][] answer = validList.stream().toArray(int[][]::new);
Arrays.sort(answer, (o1, o2) -> o1[map.get(sort_by)] - o2[map.get(sort_by)]);
return answer;
}
반응형
'코테 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 PCCP] Lv1 9번 이웃한 칸 (0) | 2023.11.27 |
---|---|
[프로그래머스 PCCP] Lv1 1번 붕대감기 (0) | 2023.11.27 |
[프로그래머스 Lv3] 여행경로 (0) | 2023.11.24 |
[프로그래머스 Lv2] 순위 검색 (0) | 2023.11.23 |
[프로그래머스 Lv2] 행렬 테두리 회전하기 (1) | 2023.11.22 |