백준 algorithm

백준 1037 - 약수

cosmohoo 2019. 9. 2. 09:43
반응형

문제설명

숫자들의 약수를 구해보면 약수들중 가장 작은수와 가장큰 수를 곱하면 원하는 값을 구할 수 있다.
ex) 12: ( 2 3 4 6 ) => 2 *6 =12
위와 같은 방법으로 알고리즘을 짜면 쉽게 구할 수 있는 문제이다.

본인은 배열을 만들어 약수들을 배열안에 넣어 계산하는 방식으로 코드를 짰다.

 

개선해야할 점 : 처음에는 예시 값을 넣어도 값이 잘 나와 제대로 푼줄 알았지만, 알고보니 약수들이 정렬된 상태로 입력된다는 말이 없었다. 그러므로  sort함수를 써서 배열을 정렬해준 다음, 코드를 적용했어야 했다. 좀더 집중력있게 생각해야한다. 

sort 사용 예제 : https://blockdmask.tistory.com/178

 

[C++] sort algorithm 정리 및 예시

안녕하세요 BlockDMask 입니다. 오늘은 C++ STL 에서 제공하는 알고리즘 중에 sort 알고리즘에 대해 알아보겠습니다. 0. sort algorithm sort 알고리즘은 헤더파일에 속해있습니다. sort(start, end)..

blockdmask.tistory.com

 

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

int main()
{
	int N=0;//원하는 양수
	int cntY=0;//약수의 갯수
	int yak[50] = { 0 };//약수 배열
	cin >> cntY;
	for (int i = 0; i < cntY; i++)
	{
		cin >> yak[i];
	}
	sort(yak, yak + cntY);
	N = yak[0] * yak[cntY - 1];
	cout << N;
	return 0;
}
반응형