๐ ๊ณ ๋ คํด์ผํ ์ฌํญ์ด ์๋ค.
1. ์์ x ์์ or ์์ x 0 ์ ํ๋ฉด ์๊ฐ ์ปค์ง๋ค.
2. 1์ ๋ํด์ผ ์ปค์ง๋ค.
const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().trim().split('\n').map(Number);
const N = input.shift();
//1์ธ ๊ฒฝ์ฐ ๋ํด์ฃผ๊ธฐ
let result = input.filter((item) => item === 1).reduce((a, b) => a + b, 0);
//0์ดํ ์ซ์ ๋ฐฐ์ด
const arrSmall = input.filter((item) => item <= 0).sort((a, b) => a - b);
//1๋ณด๋ค ํฐ ์ซ์ ๋ฐฐ์ด
const arrBig = input.filter((item) => item > 1).sort((a, b) => a - b);
//arrSmall๊ธธ์ด๊ฐ ํ์์ธ ๊ฒฝ์ฐ ๊ฐ์ฅ ํฐ ์๋ ๋ํด์ค
if (arrSmall.length % 2 !== 0) {
result += arrSmall.pop();
}
for (let i = 0; i < arrSmall.length; i += 2) {
result += arrSmall[i] * arrSmall[i + 1];
}
//arrBig๊ธธ์ด๊ฐ ํ์์ธ ๊ฒฝ์ฐ ๊ฐ์ฅ ์์ ์๋ ๋ํด์ค
if (arrBig.length % 2 !== 0) {
result += arrBig.shift();
}
for (let i = 0; i < arrBig.length; i += 2) {
result += arrBig[i] * arrBig[i + 1];
}
console.log(result);