230321 TIL - 프로그래머스 12941

thumbzzero·2023년 3월 21일
0

TIL

목록 보기
13/21

12941

자연수로 이루어진 길이가 같은 배열 A, B가 주어질 때 A, B에서 각각 한 개의 숫자를 뽑아 두 수를 곱하는 과정을 반복했을 때 최종적으로 누적된 최솟값을 return 하는 solution 함수를 완성해 주세요.

JavaScript

function solution(A,B){
    var answer = 0;
    A.sort((previous, current) => previous - current);  // 오름차순
    B.sort((previous, current) => current - previous);  // 내림차순

    for (let i = 0; i < A.length ; i++) {
        answer += A[i] * B[i];
    }

    return answer;
}
}
  • 하나는 오름차순, 하나는 내림차순으로 정렬
  • sort([compareFunction(a, b)]) : 원 배열을 정렬, 매개변수에 정렬기준으로 준 함수의 리턴값이 0보다 작은 경우 a가 앞으로 옴

Python

def solution(A,B):
    answer = 0

    A.sort()
    B.sort(reverse = True)
    
    for i in range(len(A)):
        answer += A[i] * B[i]

    return answer
  • 원 리스트 정렬 함수 : sort()
    cf) 정렬된 새로운 리스트 리턴 : sorted()
  • sort(reverse = False) : default, 오름차순 정렬
  • sort(reverse = True) : 내림차순 정렬

0개의 댓글