심심한잉여의 잡동사니

JAVA - 프로그래머스 1레벨 - N번째 수 본문

코딩일기/코딩테스트 연습

JAVA - 프로그래머스 1레벨 - N번째 수

심심한잉여 2021. 10. 18. 22:04
반응형
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

class Solution {
    public int[] solution(int[] array, int[][] commands) {
        
    int[] answer = new int[commands.length];
		int num1 = 0; /* 
		int num2 = 0;  * commands에 있는 [n][1,2,3]값을 추출할 변수값 생성
		int num3 = 0;  */
		List<Integer> list = new ArrayList<Integer>();

		for (int i = 0; i < commands.length; i++) { // commands에 있는 [n][1,2,3]값을 변수 추출을 위한 순회

			num1 = commands[i][0] - 1;
			num2 = commands[i][1];
			num3 = commands[i][2] - 1; // 추출 완료

			if (num1 == num2) { // 범위가 없다면 바로 값 입력
				list.add(array[num1]);
			} else {
				for (int j = num1; j < num2; j++) { 

					list.add(array[j]); // 추출한 값으로 범위 지정하여 list에 담기

				}
			}
			Collections.sort(list); // 추출한 범위를 정렬
			answer[i] = (int) list.get(num3); // 정렬하여 요청한 n번째로 큰 값을 추출
			list.removeAll(list); // list를 비우고 다음 n번째 값 받기
		}

		return answer;
    }
}

이제 프로그래머스 1레벨은 어느정도 풀 수 있게 된 것 같다.
학원에서 배우는 CRUD를 이용한 게시판 만들기와는 다른 느낌의 코딩방법이라서 아직은 좀 힘든 것 같고
계속 하다보면 나아질거라 생각하며 계속 연습할 예정이다.

반응형