코테/프로그래머스
[프로그래머스/Level1] [PCCE 기출문제] 10번 / 데이터 분석 (JAVA)
imname1am
2024. 5. 16. 18:16
반응형
📖 문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
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 |
반응형