728x90
반응형
1. 문제 설명
2. 풀이과정
해당 문제는 각 배열의 원소를 순서대로 곱하고 더했을 때 그 값이 최소가 되는 값을 구하는 문제이다.
어떤 값을 곱하고 더한 결과가 최소가 되려면 한 배열은 최솟값부터, 다른 배열은 최댓값부터 시작하여 각 배열의 최솟값과 최댓값을 곱하고 더해야 한다.
- sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys
- 각 배열의 원소 개수를 입력받는다. N = int(sys.stdin.readline())
- 각 배열의 원소를 한 줄에 입력받아 리스트로 저장한다. A = list(map(int, sys.stdin.readline().split()))
- B = list(map(int, sys.stdin.readline().split()))
- 각 원소의 곱의 합이 최소가 되려면 각 배열의 최솟값과 최댓값을 곱한 결과를 합해야 한다. 하여 한 배열을 오름차순으로 정렬하고 A.sort()
- 나머지 다른 배열을 내림차순으로 정렬한다. B.sort(reverse=True)
- 최종 연산한 값을 저장할 변수를 생성하고 초기화한다. answer = 0
- 원소의 개수만큼 반복하며 for i in range(N)
- 각 배열의 원소를 순서대로 곱하고 그 결과를 계속적으로 더해준다. answer += A[i] * B[i]
- 그렇게 구한 최솟값을 출력한다. print(answer)
반응형
3. 소스코드
import sys
N = int(sys.stdin.readline())
A = list(map(int, sys.stdin.readline().split()))
B = list(map(int, sys.stdin.readline().split()))
A.sort()
B.sort(reverse=True)
answer = 0
for i in range(N):
answer += A[i] * B[i]
print(answer)
728x90
반응형
'백준' 카테고리의 다른 글
[백준] 10813번 : 공 바꾸기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.09.28 |
---|---|
[백준] 10810번 : 공 넣기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.09.26 |
[백준] 11719번 : 그대로 출력하기 2 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.09.24 |
[백준] 4948번 : 베르트랑 공준 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.09.22 |
[백준] 11866번 : 요세푸스 문제 0 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.09.18 |
[백준] 1934번 : 최소공배수 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.09.16 |
[백준] 10844번 : 쉬운 계단 수 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.09.14 |
[백준] 11050번 : 이항 계수 1 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.09.12 |