728x90
# 그리디 알고리즘
n = int(input())
negative, positive = [], []
zero = 0
result = 0
for _ in range(n):
m = int(input())
if m < 0:
negative.append(m)
elif m == 0:
zero+=1
else:
positive.append(m)
negative.sort()
positive.sort(reverse=True)
# 음수
for i in range(0, len(negative)-1 ,2):
result += (negative[i]*negative[i+1])
# 음수의 개수가 홀수개이고 0을 못받았을 경우
if len(negative)%2 == 1 and zero == 0:
result += negative[-1]
# 양수
for i in range(0, len(positive)-1, 2):
if positive[i] != 1 and positive[i+1] != 1:
result += (positive[i]*positive[i+1])
else:
result += (positive[i]+positive[i+1])
if len(positive)%2 == 1:
result+=positive[-1]
print(result)
'PS > Python' 카테고리의 다른 글
[BOJ_Python] 14500. 테트로미노 (0) | 2021.04.05 |
---|---|
[BOJ_Python] 3190. 뱀 (0) | 2021.04.05 |
[BOJ_Python] 12871. 무한 문자열 (0) | 2021.03.28 |
[BOJ_Python] 1707. 이분 그래프 (0) | 2021.03.28 |
[BOJ_Python] 12907. 동물원 (0) | 2021.03.28 |
최근댓글