Notice
Recent Posts
Recent Comments
Link
250x250
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Tags
more
Archives
Today
Total
관리 메뉴

거인의 코딩일지

[Lv.2_Java] 최솟값구하기 본문

알고리즘테스트/Programmers

[Lv.2_Java] 최솟값구하기

코딩거인 2023. 4. 28. 14:55
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