https://www.acmicpc.net/problem/1026
🔎 해결 방법
1. bubblesort를 사용해서 A, B를 오름차순으로 정렬
2. reverse 함수를 사용하여 B를 뒤집기(내림차순)
내림차순으로 정렬하는 함수를 만들 수도 있었는데 reverse를 사용하면 코드가 더 짧아질 것 같아서 reverse 선택
3. A, B를 차례대로 곱하기!
💡 내 코드(C)
// [1026] 보물
#include <stdio.h>
#define MAX 50
void bubble_sort(int list[], int n);
void reverse(int *b, int n);
int main(void)
{
int n;
int a[MAX], b[MAX];
int sum = 0; // s의 최솟값
scanf_s("%d", &n);
// A
for (int i = 0; i < n; i++) {
scanf_s("%d", &a[i]);
}
// B
for (int i = 0; i < n; i++) {
scanf_s("%d", &b[i]);
}
bubble_sort(a, n);
bubble_sort(b, n);
reverse(b, n);
for (int i = 0 ; i < n ; i++) {
sum += a[i] * b[i];
}
printf("%d", sum);
}
void bubble_sort(int list[], int n)
{
int flag = 1, temp;
for (int i = n - 1 ; flag > 0 ; i--) {
flag = 0;
for(int j = 0 ; j < i ; j++) {
if (list[j] > list[j + 1]) {
temp = list[j];
list[j] = list[j + 1];
list[j + 1] = temp;
flag = 1;
}
}
}
}
void reverse(int *b, int n)
{
char temp;
for (int i = 0 ; i < n / 2 ; i++) {
temp = b[i];
b[i] = b[(n - 1) - i];
b[(n - 1) - i] = temp;
}
}
반응형
'Baekjoon > 정렬' 카테고리의 다른 글
[1427] 소트인사이드 (0) | 2019.09.15 |
---|---|
[2751] 수 정렬하기2 (0) | 2019.06.26 |
[2752] 세수정렬 (0) | 2019.05.19 |
[2750] 수 정렬하기 (0) | 2019.05.19 |
[11651] 좌표 정렬하기 2(C) (0) | 2019.05.19 |