๐ŸŽฒ ๋ฐฑ์ค€ 1744๋ฒˆ ์ˆ˜ ๋ฌถ๊ธฐ

Jeongeunยท2023๋…„ 7์›” 5์ผ
0

๋ฐฑ์ค€

๋ชฉ๋ก ๋ณด๊ธฐ
83/186

๋ฐฑ์ค€ 1744๋ฒˆ

๐Ÿ’Š ๊ณ ๋ คํ•ด์•ผํ•  ์‚ฌํ•ญ์ด ์žˆ๋‹ค.
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);

0๊ฐœ์˜ ๋Œ“๊ธ€