https://www.acmicpc.net/problem/1037
n = int(input()) # N의 진짜 약수의 개수
N = list(map(int, input().split())) # N이 진짜 약수
N.sort() # 오름차순으로 정렬
if n%2 == 1:
# 약수의 개수가 홀수임
# 따라서 중간에 있는 값의 제곱이 원래 숫자
print(N[n//2]**2)
else:
# 약수의 개수가 짝수이므로, 맨 좌측과 맨 우측을 곱한 것이 원래 숫자
print(N[0] * N[-1])
'Computer Science > 알고리즘' 카테고리의 다른 글
[알고리즘 - Python] BOJ 1929 (0) | 2022.06.10 |
---|---|
[알고리즘 - Python] BOJ 1978 (0) | 2022.06.10 |
[알고리즘 - 이론] 0-1 KnapSack Problem and Fractional KnapSack Problem (0-1 배낭 문제, 분할 가능한 배낭 문제) (2) | 2022.06.09 |
[알고리즘 - Python] Dynamic Programming - TSP (동적계획법 - 외판원 순환 문제) (0) | 2022.05.29 |
[알고리즘 - Python] Branch and Bound - TSP (분기한정법 - 외판원 순환 문제) (0) | 2022.05.29 |