https://www.acmicpc.net/problem/1037
def find_number():
N = int(input())
A = list(map(int, input().strip().split(' ')))
A.sort()
C = A[0] * A[-1]
print(C)
find_number()
처음에 문제가 제대로 이해가 안되서 차근차근 꼼꼼하게 읽어보았다.
먼저 1과 진짜 수를 제외한 약수의 개수를 입력하고, 두번째로 둘을 제외한 수를 입력하여 진짜 수를 구하는 것인데, 왜 약수의 개수를 입력하나 궁금했다. 트릭이 있었던 걸까? 그냥 배제하고 풀고나서 검사를해보니 정답으로 채택되었다.
어떤 수의 약수들은 오름차순으로 정렬해놓으면 보통 맨처음수와 마지막수가 같음을 알고 있었다.
근데 약수의 개수를 입력받길래.. 반복문을 통해 하나하나 검증해야하나, 이약수의 수가 1와 진짜수를 제외한 갯수와 동일하다는 것을 검증해줘야 하나 고민했었다.
n = int(input())
a = list(map(int,input().split()))
print(min(a)*max(a))
입력을 받은후, 최소값과 최대값을 바로 곱해줘서 출력해주는 방법도 있었다.