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
  • 네이버 블로그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기