Question
https://school.programmers.co.kr/learn/courses/30/lessons/120847
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
Code
방법 1) 오름차순 정렬 → 마지막 -1 인덱스 접근
import java.util.*;
class Solution {
public int solution(int[] numbers) {
// 배열을 오름차순으로 정렬
Arrays.sort(numbers);
// 정렬된 배열에서 가장 큰 두 수를 곱해서 반환
return numbers[numbers.length-1]* numbers[numbers.length-2];
}
}
- Arrays.sort(numbers) : 입력받은 정수 배열 numbers를 오름차순으로 정렬
- 내림차순 정렬을 위해서는 Integer 객체 배열로 변환해야 함
방법 2) 스트림으로 내림차순 정렬
import java.util.*;
class Solution {
public int solution(int[] numbers) {
// 1. int[] 배열을 Integer[] 배열로 변환
Integer[] tmp = Arrays.stream(numbers) // 스트림 생성
.boxed() // int를 Integer로 박싱
.toArray(Integer[]::new); // Integer 배열로 변환
// 2. Integer 배열을 내림차순으로 정렬
Arrays.sort(tmp, Collections.reverseOrder());
// 3. 정렬된 배열의 첫 두 수를 곱해서 반환
return tmp[0] * tmp[1];
}
}
- .toArray(Integer[]::new)
- 기본적인 람다식으로 쓰인 경우 : .toArray(size -> new Integer[size])
- 배열을 생성하기 위해 size를 전달받고, 크기가 size인 새로운 Integer[] 배열을 반환
- Arrays.sort(tmp, Collections.reverseOrder())
- Array.sort(array) : array를 오름차순으로 정렬
- Array.sort(array, comparator) : array를 comparator 사용하여 정렬
- Collentions.reverseOrder()는 내림차순 정렬을 위해 미리 정의된 Comparator를 제공
출처
https://jie0025.tistory.com/267
[코딩테스트입문][lv.0] 최대값 만들기(1) - 자바(Java)
프로그래머스 > 코딩테스트 연습 > 코딩테스트 입문 > 최대값 만들기(1) 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/120847 문제 정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소
jie0025.tistory.com
반응형
'Coding Test > Java' 카테고리의 다른 글
[프로그래머스 / Java] Lv.0 순서쌍의 개수 (1) | 2025.04.20 |
---|---|
[프로그래머스 / Java] Lv.0 제곱수 판별하기 (1) | 2025.04.19 |
[프로그래머스 / Java] Lv.0 제곱수 판별하기 (1) | 2025.01.25 |
[프로그래머스 / Java] Lv.0 문자열 안에 문자열 (0) | 2025.01.24 |
[프로그래머스 / Java] Lv.0 배열의 유사도 (0) | 2025.01.22 |