본문 바로가기
[알고리즘 + 자료구조]/[백준]

[BaekJoon/백준] 1037번

by Hevton 2021. 2. 27.
반응형

약수 문제.

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]);
        
    
}
반응형