상세 컨텐츠

본문 제목

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

코딩테스트

by 비굴이 2023. 3. 23. 14:16

본문

 

 

처음에 시도하려고 했던 것은 모든 경우의 수를 만들고 그 다음에 비교하여 최솟값을 찾으려고 했습니다.


하지만 이렇게 되면 이중 for문을 사용해야했으며,
비효율적이라는 생각이 들었습니다.


이에 고민을 하다 생각난 것이 결과적으로 최솟값을 구하려면 
두 배열 중 하나의 배열에선 최솟값을 다른 하나의 배열에서 최댓값을 곱하여서 더하는 것이 최솟값을 구한다

는 것이었습니다.

이에 sort()를 이용하여 A 배열은 오름차순, B배열은 내림차순으로 정렬해주고
for문을 이용해서 각 배열의 i번째있는 숫자들을 꺼내서 곱하고 답에 더하는 방식을 취했습니다.

 

function solution(A, B) {
  let answer = 0;
  A = A.sort((a, b) => a - b);
  B = B.sort((a, b) => b - a);

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

  return answer;
}

'코딩테스트' 카테고리의 다른 글

[프로그래머스] JadenCase 문자열 만들기  (0) 2023.03.23

관련글 더보기