반응형
약수 문제.
N의 약수들이 주어졌을 때, N을 구하면 된다.
인풋이 어떻게 주어지는지 모르겠어서, 질문검색으로 글을 좀 찾아보다가... 문제의 핵심을 알아버렸다.
주어진 수들 중 최솟값 * 최댓값 = N
그래서, 수들을 오름차순으로 나열한 뒤 맨앞과 맨뒤 수를 곱해주었다.
#include <stdio.h>
#include <stdlib.h>
int N;
int a[1000000];
int compar(int *a, int *b) {
if(*a < *b)
return -1;
else if(*a > *b)
return 1;
else
return 0;
}
int main() {
scanf("%d", &N);
for(int i = 0; i < N; i++) {
scanf("%d", &a[i]);
}
qsort(a, N, sizeof(int), compar);
printf("%d", a[0]*a[N - 1]);
}
반응형
'[알고리즘 + 자료구조] > [백준]' 카테고리의 다른 글
[BaekJoon/백준] 1934번 (0) | 2021.02.27 |
---|---|
[BaekJoon/백준] 2609번 (0) | 2021.02.27 |
[BaekJoon/백준] 5086번 (0) | 2021.02.27 |
[BaekJoon/백준] 13305번 그리디 알고리즘 | 복습 1회 완료 (0) | 2021.02.21 |
[BaekJoon/백준] 1541번 그리디 알고리즘 (0) | 2021.02.21 |