SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
보물 왕 태혁은 세상의 모든 보물을 숨겨놓은 창고를 만들었다. 그리고 잠금 장치에 비밀번호 숫자 N 을 등록하려고 한다. 하지만 숫자를 까먹으면 자기 자신도 보물을 찾을 수 없다는 사실을 깨달았다. 그렇다고 숫자 그대로를 적으면 위험하다.
숫자를 까먹지 않기 위해 특별한 방법으로 종이에 적어 놓았다. 그 특별한 방법이란, 숫자 N 의 약수를 적어놓는 것이다. 숫자의 모든 약수를 따로 보관하여 숨길 계획이다. 단, 1과N 은 적지 않았다.
10년 뒤, 보물을 찾으러 온 태혁은 암호를 입력해야 했는데 역시나 까먹어버렸다. 다행히 약수들이 적혀있는 종이를 가지고 있다.
종이에 써져 있는 약수들을 보고 원래 숫자를 만들어 내자.
[입력]
첫 번째 줄에 테스트 케이스의 수 T 가 주어진다.
각 테스트 케이스의 첫 번째 줄에는 종이에 써져 있는 약수의 개수 가 주어진다.
두 번째 줄에는 서로 다른 자연수 P개가 주어진다. 자연수는 모두 2 이상 100만 이하이다.
[출력]
각 테스트 케이스마다 ‘#x’(x는 테스트케이스 번호를 의미하며 1부터 시작한다)를 출력하고,
각 테스트 케이스마다 원래 숫자 N을 출력하라.
[풀이]
- 입력 배열을 정렬..
- 가장 작은 수와 가장 큰 수를 곱하면 원래 수를 구할 수 있음!!
- 단 약수가 1개 이면 그 수의 제곱이기에 그 부분만 따로 처리하면 끝!!
import java.io.FileInputStream;
import java.util.*;
class Solution {
public static void main(String args[]) throws Exception
{
Scanner sc = new Scanner(System.in);
int T; T=sc.nextInt();
for(int test_case = 1; test_case <= T; test_case++) {
int num = sc.nextInt();
Integer[] arr = new Integer[num];
for(int i=0;i<arr.length;i++)arr[i] = sc.nextInt();
Arrays.sort(arr);
if(arr.length == 1)System.out.println("#"+test_case + " "+(arr[0]*arr[0]));
else System.out.println("#"+test_case + " "+(arr[0]*arr[num-1]));
}
}
}
'알고리즘 > SWEA 문제풀이' 카테고리의 다른 글
SWEA 4579 - D3) 세상의 모든 팰린드롬 2 (0) | 2020.10.04 |
---|---|
SWEA 1289 - D3) 원재의 메모리 복구 (0) | 2020.08.19 |
SWEA 1233 - D4) 사칙연산 유효성 검사 (0) | 2020.08.18 |
SWEA 1938 - D1) 아주 간단한 계산기 (0) | 2020.08.15 |
SWEA 2027 - D1) 대각선 출력하기 (0) | 2020.08.15 |