Algorithm

Baekjoon 백준 알고리즘 - 보물 ( 1026 )

jssvs 2022. 5. 1. 21:30
반응형

1. 문제 소개

  • 수학 유형 문제에 해당한다.

 

2. 코드


def set_test_case():
    A = []
    B = []
    T = input() 
    for i in range(0,2):
        org = input().split(" ")
        if i == 0 :
            A = [int(x) for x in org]
        else:
            B = [int(x) for x in org]

    return A,B


def solution():
    A,B = set_test_case()
    S = 0 
    A = sorted(A)
    B_I = []  # B 배열의 크기 별 순위 인덱스
    MAP_B = {} # Key : B 인덱스의 값, avlue : B 인덱스의 위치

    for idx,va in enumerate(B):
        MAP_B[va] = idx  # 
        
    for i in sorted(B,reverse=True):
        B_I +=[MAP_B[i]] # B 배열의 각 요소별 크기 순번 저장
    
    for idx,va in enumerate(A):
        S_PART = va * B[B_I[idx]]
        S += S_PART

    print(S)



solution()

3. 코멘트

  • 수학을 이용해서 풀지 않았.. 

 

반응형