BAEKJOON #1026) 보물

    반응형

    알고리즘 분류: 그리디 알고리즘

     

    1026번: 보물

    첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거

    www.acmicpc.net

     

     

    💡 풀이

    n = int(input())
    
    lst_a = list(map(int, input().split()))
    lst_b = list(map(int, input().split()))
    
    lst_a.sort()
    lst_b.sort(reverse=True)
    
    result = 0
    for a, b in zip(lst_a, lst_b):
        result += a*b
        
    print(result)

    가장 작은 S를 만드는 방법은 큰 B의 원소가 크면 클수록 가장 작은 A의 원소를 곱해주는 것이다. 

    따라서 A는 오름차순 정렬, B는 내림차순 정렬하여 같은 인덱스의 원소를 각각 곱해 더해주면 정답이다.

     

    반응형

    댓글