이 문제를 보니 예전에 자바로 약수구하기 문제를 풀었던게 생각난다.
https://dsdsds.tistory.com/10?category=1002335
약수가 뭔지 잊었던..슬픈 추억^_^
아무튼 문제를 봤는데 이 문제는 예제를 보면 답을 알 수 있을 것 같았다.
예제를 보면 약수 중 가장 작은 수와 가장 큰 수를 곱하면 N이 나온다는 것을 알 수 있다.
(예제 3에서 3x12 = 24)
그렇다면 가장 작은 수와 가장 큰 수를 어떻게 구하느냐가 문제인데...
Arrays.sort() 를 하면 배열을 오름차순 정렬할 수 있다.
그러면 배열[0] 과 배열[n-1](0번부터 시작하기 때문에 가장 마지막 숫자는 n-1번 방에 있다) 을 곱하면 N이 나올 것이다.
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int a = in.nextInt(); //약수의 개수
int num[] = new int[a];//약수들 받을 배열
for(int i=0; i<a; i++) {
num[i] = in.nextInt(); //배열 안에 약수들 넣기
}
Arrays.sort(num);//오름차순 정렬
System.out.println(num[0]*num[a-1]);//가장 작은 수*가장 큰 수=N
}
}
설명은 주석에...
'Study > 알고리즘' 카테고리의 다른 글
백준 1110번 - 더하기 사이클 JAVA (0) | 2022.07.27 |
---|---|
백준 1075번 - 나누기 JAVA (0) | 2022.07.26 |
백준 1100번 - 하얀 칸 JAVA (0) | 2022.07.24 |
백준 1009번 - 분산처리 JAVA (0) | 2022.07.23 |
JAVA 백준 알고리즘 단계별로 풀어보기 - 3 (0) | 2022.05.30 |