반응형
📖 문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
💡 풀이 방식
• 브루트포스
1. 리스트에 val_ext보다 작은 데이터만 뽑아 저장한다.
2. 해당 리스트를 sorty_by에 해당하는 값 기준으로 오름차순 정렬한다.
3. 리스트를 2차원 배열로 변환한다.
+ ext, sort_by 정보의 인덱스 구하는 방법을 동일하므로 메소드로 만들어 사용한다.
// 배열에서 데이터의 인덱스 구하는 메소드
private static int getIdx(String str) {
switch(str) {
case "code": return 0;
case "date": return 1;
case "maximum": return 2;
case "remain": return 3;
}
return -1;
}
🔺 코드
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
31
32
33
34
35
36
|
import java.util.*;
class Solution {
public int[][] solution(int[][] data, String ext, int val_ext, String sort_by) {
List<int[]> list = new ArrayList<>(); // val_ext보다 작은 데이터만 저장할 리스트
int infoNum = getIdx(ext); // 데이터 뽑아낼 정보의 인덱스 구하기
for(int[] d : data) {
if(d[infoNum] < val_ext) { // val_ext보다 작은 데이터만 뽑기
list.add(d);
}
}
int sortNum = getIdx(sort_by); // sort_by에 해당하는 값의 인덱스 구하기
Collections.sort(list, (o1, o2) -> o1[sortNum] - o2[sortNum]); // 위에서 구한 값 기준 오름차순 정렬
// 리스트를 2차원 배열 값으로 변환
int[][] answer = new int[list.size()][4];
for(int i = 0 ; i < answer.length ; i++) {
answer[i] = list.get(i);
}
return answer;
}
// 배열에서 데이터의 인덱스 구하는 메소드
private static int getIdx(String str) {
switch(str) {
case "code": return 0;
case "date": return 1;
case "maximum": return 2;
case "remain": return 3;
}
return -1;
}
}
|
cs |
1회독 | 2회독 | 3회독 | 4회독 | 5회독 |
V |
반응형
'코테 > 프로그래머스' 카테고리의 다른 글
[프로그래머스/Level2] 교점에 별 만들기 (JAVA) (0) | 2024.06.11 |
---|---|
[프로그래머스/Level3] 부대 복귀 (JAVA) (2) | 2024.06.08 |
[프로그래머스/Level3] 스티커 모으기(2) (JAVA) (0) | 2024.05.16 |
[프로그래머스/Level3] 경주로 건설 (JAVA) (0) | 2024.05.14 |
[프로그래머스/Level3] 불량 사용자 (JAVA) (0) | 2024.05.13 |