Python으로 구현한 1026번 보물 문제 풀이입니다.
https://www.acmicpc.net/problem/1026
n = int(input())
a = list(map(int, input().split()))
b = list(map(int, input().split()))
result = 0
for i in range(n) :
result += min(a) * max(b)
a.pop(a.index(min(a)))
b.pop(b.index(max(b)))
print(result)
n을 입력받고 a와 b는 리스트 형태로 정수형을 입력받는다.
이 문제를 해결하기 위해서는 a의 최솟값과 b의 최대값을 곱한 뒤 각 수들의 합을 구해야 한다.
하지만, 문제에서 b는 재배열하면 안된다고 했으므로 max( ) 함수를 통해 문제를 해결한다.
반복문 내에서 min( ) 함수를 통해 a의 최솟값을 구하고 max( ) 함수를 통해 b의 최댓값을 구하여 result에 더한다.
그 후 a에서 현재의 최솟값을 꺼내고 b 또한 현재의 최댓값을 꺼낸다
위와 같은 방식으로 n만큼 반복하여 반복문이 종료되면 최종적으로 result 값을 출력한다.
'백준(Python) 풀이 > 수학' 카테고리의 다른 글
백준(Python) 11050번 이항 계수 1 풀이 (0) | 2021.10.08 |
---|---|
백준(Python) 10757번 큰 수 A+B 풀이 (0) | 2021.10.07 |
백준(Python) 1010번 다리 놓기 풀이 (0) | 2021.10.07 |
백준(Python) 10953번 A+B - 6 풀이 (0) | 2021.10.07 |
백준(Python) 4948번 베르트랑 공준 풀이 (2) | 2021.10.07 |