문제 풀이
재밌는 문제다.
1과 N을 제외한 진짜 약수가 모두 주어졌을 때, N을 구하는 문제.
12의 약수를 생각해보자.
{1, 2, 3, 4, 6, 12}
문제에서 1과 N을 제외한 진짜 약수가 주어진다고 하면 아마 다음과 같을 것이다.
{2, 3, 4, 6}
위의 수열은 섞여있을 수도 있다. 그렇지만 진짜 약수들만 주어지므로 요소는 똑같다.
어떻게 N을 찾을 수 있을까?
간단하다.
가장 작은 수랑 가장 큰 수를 곱하면 그것이 즉 N이다.
2 x 6 = 12 (우리가 구하려고 하는 N이다)
따라서 수열이 주어지면 가장 작은 수랑 큰 수를 곱하면 답이다.
소스 코드
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
int n;
cin >> n;
vector<int> v(n);
for (int i = 0; i < n; i++) cin >> v[i];
int a = *min_element(v.begin(), v.end());
int b = *max_element(v.begin(), v.end());
cout << a * b << endl;
return 0;
}
'Algorithm' 카테고리의 다른 글
[백준 2573] 빙산 (0) | 2021.11.10 |
---|---|
[백준 3036] 링 (0) | 2021.11.09 |
[백준 2665] 미로만들기 (0) | 2021.11.08 |
[백준 14221] 편의점 (0) | 2021.11.04 |
[백준 18352] 특정 거리의 도시 찾기 (0) | 2021.11.04 |