jae_coding

(백준 알고리즘 문제풀이) 1026번 보물 본문

알고리즘 문제/백준

(백준 알고리즘 문제풀이) 1026번 보물

재코딩 2022. 7. 5. 17:24
반응형

문제

문제 링크

 

문제 접근

 

  • B에 있는 수를 재배열 하면 안 된다에서 많은 고민을 하였지만 알고리즘 상에서 상관없기 때문에 재배열은 아니다.
  • 리스트를 2개를 이용하지만 A 리스트는 오름차순, B리스트는 내림차순으로 정렬을 한다
  • 두 리스트를 index 값끼리 곱하여 합을 구한다

코드

import sys


def main():
    N = int(sys.stdin.readline())
    sum = 0
    sorted_A = list()
    sorted_B = list()
    A = sys.stdin.readline().strip().split()
    B = sys.stdin.readline().strip().split()
    for i in range(N):
        sorted_A.append(int(A[i]))
        sorted_B.append(int(B[i]))
    sorted_A.sort()
    sorted_B.sort(reverse=True)
    for i in range(N):
        sum += sorted_A[i] * sorted_B[i]
    print(sum)


main()

 

느낀점

리스트 구조에 대한 정리를 할 수 있었고, 오름차순과 내림차순 정렬에 대한 개념에대하여 한번 정리할 수 있었다.

반응형
Comments