Binary Journey

[프로그래머스] 최솟값 만들기 본문

프로그래머스/level 2

[프로그래머스] 최솟값 만들기

binaryJournalist 2021. 8. 10. 01:40
반응형

 

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges

 

 

 

 

 

** Javascript

 

function solution(A, B){
    const a = A.sort((x, y) => x - y);
    const b = B.sort((x, y) => y - x);
    return a.reduce((acc, curr, index) => acc += curr * b[index], 0);
}

 

 

 

다른 풀이들을 보니까 모두 같은 생각이었나 보다. 아래는 가장 많은 추천을 받은 풀이다.

 

function solution(A,B){
    A.sort((a, b) => a - b)
    B.sort((a, b) => b - a)
    return A.reduce((total, val, idx) => total + val * B[idx], 0)
}

 

보니까 sort 의 경우 인스턴스에 리턴값을 받을 필요가 없는 것 같다.

 

 

** Python (2021-11-29)

 

def solution(A,B):
    a = sorted(A)
    b = sorted(B, key = lambda x : x * -1)
    answer = 0
    for i in range(len(a)):
        answer += a[i] * b[i]
    return answer

 

 

** Java (2021-11-29)

 

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 < B.length; i++) answer += A[i] * B[B.length - i - 1];
        return answer;
    }
}
반응형