7월 5일(수) - 그리디 알고리즘 (1026번)
1026번: 보물
첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거
www.acmicpc.net
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
최초 생각 정리
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
문제점
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
풀이
#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable: 4996)
#include <stdio.h>
#include <stdlib.h>
int compare_1(const void* a, const void* b)
{
int num1 = *(int*)a;
int num2 = *(int*)b;
if (num1 > num2)
{
return 1;
}
else if (num1 < num2)
{
return -1;
}
else
{
return 0;
}
}
int compare_2(const void* a, const void* b)
{
int num1 = *(int*)a;
int num2 = *(int*)b;
if (num1 < num2)
{
return 1;
}
else if (num1 > num2)
{
return -1;
}
else
{
return 0;
}
}
int main(void)
{
int N;
scanf("%d", &N);
int A[51];
int B[51];
for (int i = 0; i < N; i++)
{
scanf("%d", &A[i]);
}
qsort(A, N, sizeof(int), compare_1);
for (int i = 0; i < N; i++)
{
scanf("%d", &B[i]);
}
qsort(B, N, sizeof(int), compare_2);
int result = 0;
for (int i = 0; i < N; i++)
{
result = result + (A[i] * B[i]);
}
printf("%d", result);
return 0;
}
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
'백준(C언어) > 23년 7월' 카테고리의 다른 글
[C] 백준 - 1003번: 피보나치 함수 (0) | 2023.07.10 |
---|---|
[C] 백준 - 7576번: 토마토 (0) | 2023.07.07 |
[C] 백준 - 11758번: CCW (0) | 2023.07.06 |
[C] 백준 - 1920번: 수 찾기 (0) | 2023.07.04 |
[C] 백준 - 9095번: 1, 2, 3 더하기 (0) | 2023.07.03 |
댓글