거인의 코딩일지
[Lv.2_Java] 최솟값구하기 본문
728x90
처음으로 도전했던 Lv2 프로그래머스!!!
정답률 높은순으로 도저언...!
이걸 봤을때 문제를 이해하는데 조금 시간이 걸렸지만
이걸 보고 배열을 오름차순 내림차순으로 정렬하여 곱해서 더해주자 생각하여 작성한 코드는 아래와 같다!
import java.util.*;
class Solution
{
public int solution(int []A, int []B)
{
Arrays.sort(A);
Integer[] arr2 = Arrays.stream(B).boxed().toArray(Integer[]::new);
Arrays.sort(arr2, Comparator.reverseOrder());
int answer = 0;
for(int i =0; i < A.length; i++){
answer += (A[i]*arr2[i]);
}
return answer;
}
}
하지만 실행해봤을때 정확도는 통과했으나 시간초과로 실패하였고 다시 고민을 해보고 작성한 코드는 아래와 같다!!!
import java.util.*;
class Solution
{
public int solution(int []A, int []B)
{
Arrays.sort(A);
Arrays.sort(B);
int answer = 0;
for(int i =0; i < A.length; i++){
answer += (A[i]*B[A.length-(i+1)]);
}
return answer;
}
}
배열길이가 같고 결국 똑같이 오름차순으로 정렬시켜준뒤 A는 앞에서 B는 뒤에서 부터 곱하면 같은 값이 나온다고 생각했고 i 는 0 부터 시작이기에 길이에다가 i+1 을 해주었다! 결과는 성공!!!
728x90
'알고리즘테스트 > Programmers' 카테고리의 다른 글
[Lv.0_Java] 치킨 쿠폰 (0) | 2023.05.03 |
---|---|
[Lv.0_Java] 카운트업!! (0) | 2023.05.01 |
[Lv.1_Java] 예산 (0) | 2023.04.24 |
[Lv.1_Java] 부족한 금액 계산하기! (0) | 2023.04.09 |
[Lv.0_Java] 편지...! (0) | 2023.03.30 |