Algorithm/프로그래머스
[Python] L2 - 최솟값 만들기
ssungni
2024. 3. 14. 17:49
문제 분석 및 정답 도출
1) 어떻게 해야 최솟값이 나올까?
가장 큰 수 * 가장 큰 수 = 너무 커짐.
가장 작은 수 * 가장 작은 수 = 작음. → 너무 작으면 나중에 어차피 가장 큰 수 * 가장 큰 수 될 수 있음.
그러므로, 한 리스트는 작은 숫자부터 가고, 한 리스트는 가장 큰 수부터 가게끔 해야됨.
2) 개념을 알아야된다!
A.sort()
B.sort(reverse=True)
3) 그래서? solution은?
def solution(A,B):
A.sort()
B.sort(reverse = True)
answer = 0
for i in range(len(A)):
answer += A[i] * B[i]
return answer
더 나아가기
sort()와 sorted의 차이
1) sort()
arr = [3, 1, 2]
arr.sort()
print(arr) # 출력: [1, 2, 3]
2) sorted()
arr = [3, 1, 2]
sorted_arr = sorted(arr)
print(sorted_arr) # 출력: [1, 2, 3]
print(arr) # 출력: [3, 1, 2] (원본 리스트는 변경되지 않음)