Skip to content

Commit

Permalink
[level 2] Title: 최솟값 만들기, Time: 0.24 ms, Memory: 9.94 MB -BaekjoonHub
Browse files Browse the repository at this point in the history
  • Loading branch information
boyamie committed Jun 26, 2024
1 parent feceef7 commit f2818b6
Show file tree
Hide file tree
Showing 2 changed files with 82 additions and 0 deletions.
75 changes: 75 additions & 0 deletions 프로그래머스/2/12941. 최솟값 만들기/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
# [level 2] 최솟값 만들기 - 12941

[문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/12941)

### 성능 요약

메모리: 9.94 MB, 시간: 0.24 ms

### 구분

코딩테스트 연습 > 연습문제

### 채점결과

정확성: 69.6<br/>효율성: 30.4<br/>합계: 100.0 / 100.0

### 제출 일자

2024년 06월 26일 17:05:41

### 문제 설명

<p>길이가 같은 배열 A, B 두개가 있습니다. 각 배열은 자연수로 이루어져 있습니다. <br>
배열 A, B에서 각각 한 개의 숫자를 뽑아 두 수를 곱합니다. 이러한 과정을 배열의 길이만큼 반복하며, 두 수를 곱한 값을 누적하여 더합니다. 이때 최종적으로 누적된 값이 최소가 되도록 만드는 것이 목표입니다. (단, 각 배열에서 k번째 숫자를 뽑았다면 다음에 k번째 숫자는 다시 뽑을 수 없습니다.)</p>

<p>예를 들어 A = <code>[1, 4, 2]</code> , B = <code>[5, 4, 4]</code> 라면</p>

<ul>
<li>A에서 첫번째 숫자인 1, B에서 첫번째 숫자인 5를 뽑아 곱하여 더합니다. (누적된 값 : 0 + 5(1x5) = 5)</li>
<li>A에서 두번째 숫자인 4, B에서 세번째 숫자인 4를 뽑아 곱하여 더합니다. (누적된 값 : 5 + 16(4x4) = 21)</li>
<li>A에서 세번째 숫자인 2, B에서 두번째 숫자인 4를 뽑아 곱하여 더합니다. (누적된 값 : 21 + 8(2x4) = 29)</li>
</ul>

<p>즉, 이 경우가 최소가 되므로 <strong>29</strong>를 return 합니다.</p>

<p>배열 A, B가 주어질 때 최종적으로 누적된 최솟값을 return 하는 solution 함수를 완성해 주세요.</p>

<h5>제한사항</h5>

<ul>
<li>배열 A, B의 크기 : 1,000 이하의 자연수</li>
<li>배열 A, B의 원소의 크기 : 1,000 이하의 자연수</li>
</ul>

<h5>입출력 예</h5>
<table class="table">
<thead><tr>
<th>A</th>
<th>B</th>
<th>answer</th>
</tr>
</thead>
<tbody><tr>
<td>[1, 4, 2]</td>
<td>[5, 4, 4]</td>
<td>29</td>
</tr>
<tr>
<td>[1,2]</td>
<td>[3,4]</td>
<td>10</td>
</tr>
</tbody>
</table>
<h5>입출력 예 설명</h5>

<p>입출력 예 #1<br>
문제의 예시와 같습니다.</p>

<p>입출력 예 #2<br>
A에서 첫번째 숫자인 1, B에서 두번째 숫자인 4를 뽑아 곱하여 더합니다. (누적된 값 : 4) 다음, A에서 두번째 숫자인 2, B에서 첫번째 숫자인 3을 뽑아 곱하여 더합니다. (누적된 값 : 4 + 6 = 10)<br>
이 경우가 최소이므로 10을 return 합니다.</p>


> 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
def solution(A,B):
answer = 0
A.sort(reverse = True)
B.sort()
for i in range(len(A)):
answer += A[i]*B[i]
return answer

0 comments on commit f2818b6

Please sign in to comment.