문제 풀이

 

재밌는 문제다.

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

+ Recent posts