1. 문제
https://www.acmicpc.net/problem/1026
1026번: 보물
첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거
www.acmicpc.net
2. 풀이
import sys
input = sys.stdin.readline
# n : a, b 배열의 크기
n = int(input())
a = list(map(int, input().split()))
b = list(map(int, input().split()))
# min_sum : 최소 합
min_sum = 0
for i in range(n):
min_sum += a.pop(a.index(min(a))) * b.pop(b.index(max(b)))
print(min_sum)
3. 후기
- 문제의 제한 사항에 A 배열의 재배열만 허용하고, B 배열의 재배열은 허용하지 않았다. 때문에 처음엔 A를 어떻게 재배열할지에 대해서 고민했다. 하지만 사실상 두 배열 모두 재배열할 필요가 없다는 것을 알게돼어 위와 같이 가장 작은 수와 가장 큰 수를 찾는 방식의 프로세스로 코드를 작성하였다.
'알고리즘 공부 > 백준' 카테고리의 다른 글
(Python)백준 코딩테스트 연습 - 로프(2217) (0) | 2023.01.15 |
---|---|
(Python)백준 코딩테스트 연습 - 30(10610) (0) | 2023.01.13 |
(Python)백준 코딩테스트 연습 - 큐 2(15258) (0) | 2023.01.13 |
(Python)백준 코딩테스트 연습 - 요세푸스 문제(1158) (0) | 2023.01.12 |
(Python)백준 코딩테스트 연습 - 덱(10866) (0) | 2023.01.12 |