1차 실행 오류
조건에서 배열의 크기가 1000이하인 상황에서 stream의 반복 호출로 인한 오버헤드 발생이 원인이 됨import java.util.Arrays; class Solution { public int solution(int []A, int []B) { int answer = 0; int []sortedA = Arrays.stream(A).sorted().toArray(); // 오름차순 정렬 int []sortedB = Arrays.stream(B).sorted().map(n -> -n).sorted().map(n -> -n).toArray(); // 내림차순 정렬 for (int i = 0; i < sortedA.length; i++) { answer += sortedA[i] * sortedB[i]; } return answer; } }
소요 시간: 18분
.xxx()의 형태를 계속 이어나가는 메서드 체이닝(method chaining) 방식을 이용할 때stream이 필요하지만, 위의 코드와 같이 오름차순 정렬만 하는 과정에서는 메서드 체이닝이 불필요함import java.util.Arrays; class Solution { public int solution(int []A, int []B) { int answer = 0; Arrays.sort(A); // 오름차순 정렬 Arrays.sort(B); // 오름차순 정렬 for (int i = 0; i < A.length; i++) { answer += A[i] * B[A.length - 1 - i]; } return answer; } }