본문 바로가기
백준 코딩테스트/실버

1037) 약수 (C++)

by xortl98 2022. 4. 24.
728x90

 출처 

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

 

1037번: 약수

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

www.acmicpc.net

 내 풀이 

#include<iostream>
#include<algorithm>
#include<vector>

using namespace std;

vector<int> v;	//약수들을 넣을 변수 
int N = 0;

int main()
{
	cin >> N;

	int input = 0;

	for (int i = 0; i < N; i++)
	{
		cin >> input;
		v.push_back(input);
	}

	sort(v.begin(), v.end());

	//만일 입력받은 수가 1개면 약수를 만들기 위해 서로 곱해줌 
	if (v.size() == 1) cout << v[0] * v[0];

	//그게 아니면 맨 첫번째 값과 마지막 값을 곱해서 약수를 만들어줌 
	else cout << v[0] * v[v.size() - 1];
}

 해설

어떤 수의 약수가 주어졌다고 했기 때문에 가장 작은 값과 큰 값을 곱해주면 풀리는 문제였다.

 

 새로 안 것 

문제 푸는 방법 

 

'백준 코딩테스트 > 실버' 카테고리의 다른 글

10844) 쉬운 계단의 수 (C++)  (0) 2022.04.26
2579) 계단 오르기 (C++)  (0) 2022.04.26
1932) 정수 삼각형 (C++)  (0) 2022.04.23
1012) 유기농 배추 (C++)  (0) 2022.04.23
1149) RGB거리 (C++)  (0) 2022.04.22