카테고리 없음
[백준 1037] 약수 (Java)
Bellroute
2020. 2. 6. 10:38
https://www.acmicpc.net/problem/1037
1037번: 약수
첫째 줄에 N의 진짜 약수의 개수가 주어진다. 이 개수는 50보다 작거나 같은 자연수이다. 둘째 줄에는 N의 진짜 약수가 주어진다. 1,000,000보다 작거나 같고, 2보다 크거나 같은 자연수이고, 중복되지 않는다.
www.acmicpc.net
접근 방법
진짜 약수들을 순서대로 정렬해놓고 보면,
첫번째 약수 * 마지막 약수 = N
두번째 약수 * 뒤에서 두번째 약수 = N
세번째 약수 * 뒤에서 세번째 약수 = N
...
와 같은 패턴을 발견할 수 있다.
정렬 후, 첫번째 약수와 마지막 약수의 곱을 출력하면 되는 쉬운 문제였다.
최종 코드
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int number = scanner.nextInt();
int[] factors = new int[number];
for (int i = 0; i < number; i++) {
factors[i] = scanner.nextInt();
}
Arrays.sort(factors);
System.out.println(factors[0] * factors[number - 1]);
}
}
반응형