백준 문제풀이

1037번: 약수

하다블 2022. 3. 23. 19:10
반응형

문제는 다음과 같습니다.

https://www.acmicpc.net/problem/1037

 

1037번: 약수

첫째 줄에 N의 진짜 약수의 개수가 주어진다. 이 개수는 50보다 작거나 같은 자연수이다. 둘째 줄에는 N의 진짜 약수가 주어진다. 1,000,000보다 작거나 같고, 2보다 크거나 같은 자연수이고, 중복되

www.acmicpc.net

풀이 코드는 다음과 같습니다.

#include<iostream>
#include<vector>
using namespace std;


int main()
{
	int num;
	cin >> num;
	vector<int>v;
	for (int i{ 0 }; i < num; i++)
	{

		int n;
		cin >> n;
		v.push_back(n);
	}
	int mini = v[0];
	int maxi=v[0];
	for (int i{ 0 }; i < v.size(); i++)
	{
		if (mini >= v[i])
		{
			mini = v[i];
		}
		if (maxi <= v[i])
		{
			maxi = v[i];
		}
	}
	cout << mini * maxi << endl;
}

조건에서 1과 자기자신을 제외한 약수만 주어주더라도 결국 2번째로 작은 값과 2번째로 큰 값을 곱하게 된다면 원하는 값을 얻을 수 있습니다. 문제가 어렵지 않기 때문에 주어진 값 중 최솟값, 최댓값 찾는 방법만 익히시면 풀 수 있을 것 같습니다.

반응형