[Programmers]Kビット数(Java)


1. Problem 📃


[K個]
https://programmers.co.kr/learn/courses/30/lessons/42748

2. Constraint 🔗



3. Solution 🔑

  • 配列値ArrayList、コマンド値ArrayList、解答リスト値を作成します.
  • を繰り返して数字の個数(コマンドの長さ)を検索し、数字を検索するたびにクリアして再入力し、入力した配列をリストに入れます.
    clearの理由は次のCollectionですsortを行うとar値もソートされるためclearは
  • に再配置される.
  • ijkリストは、iからjまでk個の数字を検索するコマンド値
  • を含む.
  • 入力配列(ar)を収集します.sort()でソートし、subList(formIndex,toIndex)でiからjまでリスト
  • に保存する
    回答
  • list.get()関数を使用して要素を格納し、コマンドの長さ(検索数)を繰り返し、答え
  • に戻ります.

    4. Code 💻

    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.List;
    import java.util.Arrays;
    
    class Solution {
    	public int[] solution(int[] array, int[][] commands) {
    
    		int[] answer = new int[commands.length];
    
    		ArrayList<Integer> ar = new ArrayList<Integer>(); // array
    		ArrayList<Integer> ijk = new ArrayList<Integer>(); // commands
    		List<Integer> list = new ArrayList<Integer>();
    
    		for (int a = 0; a < commands.length; a++) { // commands(찾을) 횟수만큼 반복
    			ar.clear();
    			for (int arr : array) {
    				ar.add(arr);
    			}
    
    			ijk.clear();
    			for (int b = 0; b < 3; b++) { // 구간 지정
    				ijk.add(commands[a][b]);
    			}
    			list = ar.subList(ijk.get(0) - 1, ijk.get(1)); // 구간만큼 자르기
    			Collections.sort(list); // 자른 구간 정렬
    
    			answer[a] = list.get(ijk.get(2) - 1); // 자른 구간에서 commands[n][2]를 정답에 추가
    		}
    		return answer;
    	}
    }

    5. Growth 🍄


    .clear()とは?リストを空白にまとめる関数
    .Collections.sort()とは?Array.配列をソートする場合、sort()はCollectionsです.sort()は、リストオブジェクトをソートするための
    .subList(fromindex,toindex)とは?リストのfromindex(含む)からtoindexへのカット方法、indexは1から