[エンコードテスト高得点Kit]ソート
13550 ワード
質問リンク
cnt変数が宣言され,回転するたびにゲートが+1に与えられる.
降順配列なので、数字は小さくなり、cntは大きくなり、2つの数に比べてcntが等しいか大きくなると、cntは戻ります.
streamの使い方を熟知するためにstreamを使って問題を解決しました.
IDを使わずに解けるのに時間が長くて不便🤔
K番目の数
import java.util.ArrayList;
import java.util.List;
import java.util.Arrays;
class Solution {
public int[] solution(int[] array, int[][] commands) {
List<Integer> ans = new ArrayList<>();
for(int[] com : commands) {
int[] arr = Arrays.copyOfRange(array, com[0]-1, com[1]);
Arrays.sort(arr);
ans.add(arr[com[2]-1]);
}
return ans.stream().mapToInt(Integer::intValue).toArray();
}
}
大数
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
class Solution {
public String solution(int[] numbers) {
List<String> ans = Arrays.stream(numbers)
.mapToObj(String::valueOf)
.collect(Collectors.toList());
ans.sort((s1, s2) -> (s2 + s1).compareTo(s1 + s2));
if (ans.get(0).equals("0")) {
return "0";
}
return String.join("", ans);
}
}
文字列の結合には比較方法が使用されます.H-Index
import java.util.Arrays;
import java.util.Collections;
class Solution {
public int solution(int[] citations) {
Integer[] arr = Arrays.stream(citations).boxed().toArray(Integer[]::new);
Arrays.sort(arr, Collections.reverseOrder());
int cnt = 0;
for(int n : arr) {
if(n <= cnt) return cnt;
cnt++;
}
return cnt;
}
}
降順に並べる.(int->Integerに変換してCollections.ReverseOrder()を使用)cnt変数が宣言され,回転するたびにゲートが+1に与えられる.
降順配列なので、数字は小さくなり、cntは大きくなり、2つの数に比べてcntが等しいか大きくなると、cntは戻ります.
streamの使い方を熟知するためにstreamを使って問題を解決しました.
IDを使わずに解けるのに時間が長くて不便🤔
Reference
この問題について([エンコードテスト高得点Kit]ソート), 我々は、より多くの情報をここで見つけました https://velog.io/@clapkong/코딩테스트-고득점-Kit-정렬テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol