문제번호: 1026
문제명: 보물
문제링크: https://www.acmicpc.net/problem/1026
문제내용과 예제 입/출력은 위 문제 링크에서 확인해 주시기 바랍니다
안녕하세요. 오늘은 수학 태그의 보물이라는 문제를 풀어보았습니다. 해당 문제는 두 배열을 정렬하여 S = A[0] × B[0] + ... + A[N-1] × B[N-1] 일 때 S의 최솟값을 구하는 문제입니다.
따라서 저는 배열 1은 오름차순 정렬을 하고 배열 2번은 내림차순 정렬을 통해 최대한 큰수 x 작은수가 이루어지도록 했습니다.
다음은 정답코드입니다.
public static void Main()
{
using StreamReader sr = new StreamReader(Console.OpenStandardInput());
using StreamWriter sw = new StreamWriter(Console.OpenStandardOutput());
int n = int.Parse(sr.ReadLine());
List<int> list_1 = Array.ConvertAll(sr.ReadLine().Split(), int.Parse).ToList();
List<int> list_2 = Array.ConvertAll(sr.ReadLine().Split(), int.Parse).ToList();
list_1.Sort();//정렬
list_2.Sort();//졍렬
list_2.Reverse();//정렬 후 뒤집기
int answer = 0;
for (int i = 0; i < n; i++)
{
answer += list_1[i] * list_2[i];
}
sw.WriteLine(answer);
sr.Close();
sw.Close();
}
'알고리즘 풀이' 카테고리의 다른 글
| [C#] 백준 2217번 문제풀이 (0) | 2026.02.22 |
|---|---|
| [C#] 백준 1269번 문제풀이 (0) | 2026.02.21 |
| [C#] 백준 12865번 문제풀이 (0) | 2026.02.19 |
| [C#] 백준 10826번 문제풀이 (0) | 2026.02.18 |
| [C#] 백준 1932번 문제풀이 (0) | 2026.02.17 |