Algorithm/SW Expert Academy
[SWEA] 7829 보물왕 태혁
SSONGMI
2021. 3. 1. 19:16
반응형
문제 출처: SW Expert Academy
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
: 주어진 약수들로 구성된 원래의 수를 찾아내야 한다.
: 이 때 원래의 수는 주어진 약수들 중에서 가장 작은 수와 가장 큰 수의 곱으로 나타내질 수 있다.
: 따라서 주어진 약수들을 정렬시켜 가장 작은 수와 가장 큰 수를 찾아 곱해주면 된다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Solution {
static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
static StringBuilder sb = new StringBuilder();
static StringTokenizer st;
public static void main(String[] args) throws NumberFormatException, IOException {
// 테스트 케이스 수를 입력받고
int T = Integer.parseInt(br.readLine());
for (int tc = 1; tc <= T; tc++) {
// 각 테스트 케이스마다 약수의 개수를 입력받고
int N = Integer.parseInt(br.readLine());
// 약수들을 담을 배열을 만들고
int[] numbers = new int[N];
// 약수들을 입력받고
st = new StringTokenizer(br.readLine());
for (int i = 0; i < N; i++)
numbers[i] = Integer.parseInt(st.nextToken());
// 정렬시켜서
Arrays.sort(numbers);
// 첫번째 수와 마지막 수의 곱을 구한다.
int ans = numbers[0] * numbers[N - 1];
sb.append(String.format("#%d %d\n", tc, ans));
}
System.out.println(sb);
}
}
반응형