-
백준 1037 - 약수백준 algorithm 2019. 9. 2. 09:43반응형
숫자들의 약수를 구해보면 약수들중 가장 작은수와 가장큰 수를 곱하면 원하는 값을 구할 수 있다.
ex) 12: ( 2 3 4 6 ) => 2 *6 =12
위와 같은 방법으로 알고리즘을 짜면 쉽게 구할 수 있는 문제이다.본인은 배열을 만들어 약수들을 배열안에 넣어 계산하는 방식으로 코드를 짰다.
개선해야할 점 : 처음에는 예시 값을 넣어도 값이 잘 나와 제대로 푼줄 알았지만, 알고보니 약수들이 정렬된 상태로 입력된다는 말이 없었다. 그러므로 sort함수를 써서 배열을 정렬해준 다음, 코드를 적용했어야 했다. 좀더 집중력있게 생각해야한다.
sort 사용 예제 : https://blockdmask.tistory.com/178
#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; }
반응형'백준 algorithm' 카테고리의 다른 글
백준 1085 - 직사각형에서 탈출 (0) 2019.09.02 11654 - 아스키코드 (0) 2019.09.02 백준 1065 - 한수 (0) 2019.09.02 백준 11727 - 2×n 타일링 2 (0) 2019.08.31 백준 2440 - 별 찍기 - 3 (0) 2019.08.31