ylab 2022. 2. 19. 16:33

https://www.acmicpc.net/problem/1026

 

1026번: 보물

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

www.acmicpc.net

# 보물
# 길이가 N인 정수 배열 A와 B가 있다.
# S값을 가장 작게 만들기 위해 A의 수를 재배열하자.
# 단, B에 있는 수는 재배열 하면 안 된다.
# S의 최솟값을 출력하는 프로그램을 작성하시오.
N = int(input())
A= list(map(int,input().split()))
B= list(map(int,input().split()))

#B의 값에 따라 무조건 A값 작은거 넣으면 해결 => B에 대해 정렬때리면? 해결

A.sort(reverse=True)
B.sort()

C = list(map(lambda x,y:x*y,A,B))

print(sum(C))




문제에서는 B에대해서 재배열하지 말라고 했지만 사실 그게 그소리다

얻은것

1. 문제 재해석

2. map함수랑 람다함수