천리길도 한걸음부터

문제02 배열 제어하기⭐⭐ 본문

코딩 테스트 합격자 되기_자바💜

문제02 배열 제어하기⭐⭐

밤연양갱 2024. 8. 6. 23:52

- 저자 권장 시간 : 10분

- 권장 시간 복잡도 : O(NlogN)

- 출제 : 저자 출제

 

import java.util.Arrays;

import java.util.Collections;

 

public class Solution() {

    public static void main(String[] args) {

        System.out.println(Arrays.toString());

        System.out.println(Arrays.toString());

    }

 

    private static int[] solution(int[] arr) {

        // 1. 배열 중복제거

        Integer[] result = Arrays.stream(arr).boxed().distinct().toArray(Integer[]::new);

        // 2. 내림차순 정렬

        Arrays.sort(result, Collections.reverseOrder());

        // int형 배열로 변경 후 반환

        return Arrays.stream(result).maptoInt(Integer::intValue).toArray();

    }

}

 

----------

자바에는 코딩 테스트에 유용한 표준 API들이 많고, 굳이 직접 작성할 필요X.

효율성이 떨어지는 상황에는 가급적 표준API 사용.

 

-----------

 

import java.util.Collections;

import java.util.TreeSet;

 

public class Solution {

    private static int[] solution(int[] arr) {

        // 1. 중복값 제거, 2. 내림차순 정렬

        TreeSet<Integer> set = new TreeSet<>(Collections.reverseOrder());

        for (int num : arr ) {

            set.add(num);

        }

 

    // int형 배열에 담아서 반환

    int[] result = new int[set.size()];

        for (int i=0; i<result.length; i++) { 

            result[i] = set.pollFirst();

        }

    return result;

    }

}

 

---------

api 열심히 외워야겠네..쓰다보면 외워지겠지?

헷갈..