[Programmers / Level1] 250121. 데이터 분석(Java)

이하얀·2024년 7월 16일
0

🕊️ 프로그래머스

목록 보기
13/43

💡 Info




입출력 조건




입출력 예시




문제 이해




알고리즘


풀이 시간 : 27분

  • 입력

    • list 선언하기(결과를 저장할 리스트)
    • ["코드 번호(code)", "제조일(date)", "최대 수량(maximum)", "현재 수량(remain)"] 를 저장하고 있는 String 선언하기
    • 기준 값 인덱스인 extIndex, 정렬 값 인덱스인 sortIndex 선언하기
  • 계산

    • 2번의 String과 ext, sort_by를 비교해서 3번 설정
    • data 배열 -> extIndex 열의 값 < val_ext인 경우 list에 추가
    • list를 sort_by 기준으로 정렬(오름차순)
  • 출력

    • 시작점, 끝점 정수 배열 결과 반환
import java.util.*;

class Solution {
    public List<int[]> solution(int[][] data, String ext, int val_ext, String sort_by) {
        
    List<int[]> list = new ArrayList<>();

    String[] standard = {"code", "date", "maximum", "remain"};

    int extIndex = 0;
    int sortIndex = 0;

    for(int i=0; i<4; i++){
        if(ext.equals(standard[i])){
            extIndex = 1;
        }
        if(sort_by.equals(standard[i])){
            sortIndex = 1;
        }
    }

    for(int i=0; i<data.length; i++){
        if(data[i][extIndex] < val_ext){
            list.add(data[i]);
        }
    }
        
    final int newSortIndex = sortIndex;

    Collections.sort(list, (o1, o2) -> o1[newSortIndex] - o2[newSortIndex]);

    return list;
    }
}


오답체크


  • extIndex와 sortIndex를 i로 반환해야 하는데, 1로 반환하는 문제로 인해 테스트 실패
//before
for(int i=0; i<4; i++){
	if(ext.equals(standard[i])){
		extIndex = 1;
    }
    if(sort_by.equals(standard[i])){
    	sortIndex = 1;
    }
}
//after
for(int i=0; i<4; i++){
	if(ext.equals(standard[i])){
		extIndex = i;
    }
	if(sort_by.equals(standard[i])){
    	sortIndex = i;
    }
}


최종 풀이


풀이 시간 : 45분(첫 풀이 시간 포함)

  • 입력

    • list 선언하기(결과를 저장할 리스트)
    • ["코드 번호(code)", "제조일(date)", "최대 수량(maximum)", "현재 수량(remain)"] 를 저장하고 있는 String 선언하기
    • 기준 값 인덱스인 extIndex, 정렬 값 인덱스인 sortIndex 선언하기
  • 계산

    • 2번의 String과 ext, sort_by를 비교해서 3번 설정
    • data 배열 -> extIndex 열의 값 < val_ext인 경우 list에 추가
    • list를 sort_by 기준으로 정렬(오름차순)
  • 출력

    • 시작점, 끝점 정수 배열 결과 반환
import java.util.*;

class Solution {
    public List<int[]> solution(int[][] data, String ext, int val_ext, String sort_by) {
        
    List<int[]> list = new ArrayList<>();

    String[] standard = {"code", "date", "maximum", "remain"};

    int extIndex = 0;
    int sortIndex = 0;

    for(int i=0; i<4; i++){
        if(ext.equals(standard[i])){
            extIndex = i;
        }
        if(sort_by.equals(standard[i])){
            sortIndex = i;
        }
    }

    for(int i=0; i<data.length; i++){
        if(data[i][extIndex] < val_ext){
            list.add(data[i]);
        }
    }
        
    final int newSortIndex = sortIndex;

    Collections.sort(list, (o1, o2) -> o1[newSortIndex] - o2[newSortIndex]);

    return list;
    }
}


결과


profile
언젠가 내 코드로 세상에 기여할 수 있도록, BE 개발 기록 노트☘️

0개의 댓글