import sys

N = int(input())
minus = 0
plus = 0
zero = 0
minus_list = []
plus_list = []
for i in range(N):
    num = int(sys.stdin.readline())
    if num > 0:
        plus += 1
        plus_list.append(num)
    elif num < 0:
        minus += 1
        minus_list.append(num)
    else:
        zero += 1

minus_list.sort()
plus_list.sort()
plus_list.reverse()

new_minus = []
i = 0
while minus >= 2:
    new_minus.append(minus_list[i] * minus_list[i+1])
    minus -= 2
    i += 2
if minus == 1 and zero != 0:
    minus -= 1
    zero -= 1
elif minus == 1 and zero == 0:
    new_minus.append(minus_list[-1])

new_plus = []
i = 0
if 1 in plus_list:
    new_plus.append(1)
    plus_list.remove(1)
    plus -= 1
while plus >= 2:
    new_plus.append(plus_list[i] * plus_list[i+1])
    plus -= 2
    i += 2
if plus == 1:
    new_plus.append(plus_list[-1])

print(sum(new_plus) + sum(new_minus))


코드


문제

https://boj.kr/1744



입력값을 +/- 기준으로 각각 배열에 저장.

각 배열에서 큰 값부터 2개씩 곱해서 새로운 배열에 저장.

1은 곱해도 같은 수이므로 처음부터 따로 빼서 더해줄 생각

-값과 0이 남아있다면 곱해서 0이 되므로 무시해줌

0은 더하나 마나임을 고려함.


질문에 있는 반례들은 다 통과하는데 왜 틀렸다고 뜨는건지 모르겠음


PS왕님들 답변좀 해주셈