티스토리 뷰

728x90
반응형

문제

https://programmers.co.kr/learn/courses/30/lessons/12941?language=python3 

 

코딩테스트 연습 - 최솟값 만들기

길이가 같은 배열 A, B 두개가 있습니다. 각 배열은 자연수로 이루어져 있습니다. 배열 A, B에서 각각 한 개의 숫자를 뽑아 두 수를 곱합니다. 이러한 과정을 배열의 길이만큼 반복하며, 두 수를 곱

programmers.co.kr

 

코드

def solution(A,B):
    answer = 0
    A.sort()
    B.sort(reverse=True)
    for i,j in zip(A,B):
        answer += i * j
    return answer

A와 B에서 한개씩 뽑아 곱해준수를 더해 최솟값을 만들려면 A의 가장 작은수와 B의 가장 큰수를 차례로 곱해주면 된다.

그래서 A오름차순 정렬을하고 B는 내림차순 정렬을 해줘서 곱해준다.

 

zip을 사용하면 두개의 리스트를 한개의 for문으로 돌릴 수 있다.

 

B.sort(reverse=True)는 내림차순 정렬이고

B.reverse()는 그냥 리스트를 뒤집는다.

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30