💻 하나씩 차곡차곡/백준알고리즘 (Python,Java)
백준 1026번 파이썬
뚜루리
2024. 12. 10. 00:00
728x90
320x100
구현
N = int(input())
arr1 = list(map(int, input().split()))
arr2 = list(map(int, input().split()))
arr1.sort()
arr2.sort(reverse=True)
answer = 0
for i in range(N):
answer += arr1[i] * arr2[i]
print(answer)
- 그리디 알고리즘을 활용
- 하나는 오름차순 정렬, 나머지 하나는 내림차순 정렬을 하여 서로 곱하여 모두 더해주는 방식으로 품.
(+) 풀이
arr2.sort(reverse=True)
arr2 = sorted(arr2)[::-1]
위 두개의 정렬 방법은 동일하다.
for i in range(N):
answer += arr1[i] * arr2[i]
for a, b in zip(arr1, arr2):
answer += a * b
위 두개의 For문도 동일하다. zip 함수를 쓰면 같은 인덱스끼리 묶어준다.
728x90
320x100