약수 [ Python ] [ 백준 : 1037 ]

2023. 5. 27. 21:35알고리즘/백준


풀이 및 회고

 

약수를 구하는 문제인데 방법을 구하기 어려웠고 복잡하게 생각이 들었던 문제였다. 

나영님이 입력받은 값의 최소값과 최대값을 곱하면 쉽게 구할 수 있다고 말해주셨다. 대박.

그래서 문제를 풀어나갔고 풀고 나서 다른 사람의 풀이도 보았는데 우리가 작성한 코드보다 훨씬 간결했다. 아쉬웠습니다 ㅠㅜ

# 약수

n = int(input())
t = list(map(int, input().split()))

t.sort()

if len(t) % 2 == 0:
    answer = t[0] * t[-1]
else:
    num = len(t) // 2        
    answer = t[num] ** 2
print(answer)

'''
이렇게도 푸네요 ㄷㄷ
n = int(input())
a = list(map(int, input().split()))
a_max = max(a)
a_min = min(a)
print(a_max * a_min)
'''

# 그저 goat, 빛


# a = [1,2,4] => [2]

# len(a)//2
# 홀수 -> index(n) 가운데거 ^ 2
# 짝수 -> sort 해서 맨앞, 맨 뒤 곱하기