프로그래머스/레벨2

[JAVA] 프로그래머스 레벨2_최솟값 만들기😀

박차 2023. 1. 28. 19:32
내 코드 
	public int solution(int[] A, int[] B) {
		int answer = 0;
		Arrays.sort(A);
		Arrays.sort(B);
		int b = B.length-1;

		for (int i = 0; i < B.length; i++) {
			answer += A[i] * B[b];
			b--;
		}
		return answer;
	}

1. A, B 정수 배열을 정렬 

2. A 최솟값 * B최댓값 곱하기 

 

다른 사람 코드
public int getMinSum(int []A, int []B)
    {
        int answer = 0;
        int temp;
        int[] A_cp = A;
        int[] B_cp = B;
        int len = A_cp.length;  

        for(int i = 0; i < len; i++) {
            for(int j = i+1; j < len; j++) {
                if(A_cp[i] > A_cp[j]) { //A sort(increase)
                    temp = A_cp[i];
                    A_cp[i] = A_cp[j];
                    A_cp[j] = temp;
                }
                if(B_cp[i] < B_cp[j]) { //B sort(decrease)
                    temp = B_cp[i];
                    B_cp[i] = B_cp[j];
                    B_cp[j] = temp;
                }
            }
        }

        for(int i = 0; i < len; i++) {
            answer += (A_cp[i]*B_cp[i]);
        }

        return answer;
    }

1. 값을 하나씩 비교해서 A는 오름차순, B는 내림차순 

2. A 최솟값 * B최댓값 곱하기 

 

 

재밌어..