๐ ๋ฌธ์
์ ์ ๋ฐฐ์ด numbers๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. numbers์ ์์ ์ค ๋ ๊ฐ๋ฅผ ๊ณฑํด ๋ง๋ค ์ ์๋ ์ต๋๊ฐ์ returnํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
๐ ์ ํ์ฌํญ
- -10,000 ≤ numbers์ ์์ ≤ 10,000
2 ≤ numbers ์ ๊ธธ์ด ≤ 100
๐ ์ ์ถ๋ ฅ ์
numbers result
[1, 2, -3, 4, -5] 15
[0, -31, 24, 10, 1, 9] 240
[10, 20, 30, 5, 5, 20, 5] 600
๐ ์ ์ถ๋ ฅ ์ ์ค๋ช
์ ์ถ๋ ฅ ์ #1
- ๋ ์์ ๊ณฑ์ค ์ต๋๊ฐ์ -3 * -5 = 15 ์ ๋๋ค.
์ ์ถ๋ ฅ ์ #2
- ๋ ์์ ๊ณฑ์ค ์ต๋๊ฐ์ 10 * 24 = 240 ์ ๋๋ค.
์ ์ถ๋ ฅ ์ #3
- ๋ ์์ ๊ณฑ์ค ์ต๋๊ฐ์ 20 * 30 = 600 ์ ๋๋ค.
๐ง ํ์ด
function solution(numbers) {
// ์์๋ ์์๋ผ๋ฆฌ, ์์๋ ์์๋ผ๋ฆฌ ๊ณฑํด์ผ ์ต๋๊ฐ์ด ๋จ
// ๊ณ ๋ก ๋ค๋ฅธ ๋ฐฐ์ด์ ๋ฐ๋ก ๋๋ ์ ๊ณฑ์
์ ํ ๊ฒ
let plus = [];
let minus = [];
while (numbers.length != 0 ){
let tmp = numbers.shift();
if (tmp === Math.abs(tmp)) {
plus.push(tmp);
} else {
minus.push(tmp);
}
}
if (plus.length === 0) {
minus.sort((a, b) => a - b);
return minus[0] * minus[1];
} else if (minus.length === 0) {
plus.sort((a, b) => b - a);
return plus[0] * plus[1];
} else if (minus.length === 1 && plus.length === 1) {
plus.sort((a, b) => a - b);
return plus[0] * minus[0];
} else if (minus.length === 1) {
plus.sort((a, b) => b - a);
return plus[0] * plus[1];
} else if (plus.length === 1) {
minus.sort((a, b) => a - b);
return minus[0] * minus[1];
} else {
plus.sort((a, b) => b - a);
minus.sort((a, b) => a - b);
return plus[0] * plus[1] > minus[0] * minus[1] ? plus[0] * plus[1] : minus[0] * minus[1]
}
}
// ์ ๋ฐฐ์ด์ด null์ด ๋ ๋, ์กฐ๊ธ ๋ ์ธ๋ จ๋๊ฒ ์ฒ๋ฆฌํ ์ ์์์ํ
๋ฐ,
// ํ์ฅ์ค์ด ๋๋ฌด ๊ธํด์ ๋จธ๋ฆฟ์์ด ๋ณต์กํด์ ธ ๋นํจ์จ์ ์ผ๋ก ์ผ์ด์ค ๋๋ ์ ์ฒ๋ฆฌํ ๊ฒ ๊ฐ๋ค.
'๐งฉ Algorithm > ๐ง JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ์จ์ด์๋ ์ซ์์ ๋ง์ (2) (0) | 2023.04.17 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ๋คํญ์ ๋ํ๊ธฐ (0) | 2023.04.17 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์บ๋ฆญํฐ์ ์ขํ (0) | 2023.04.17 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์ง์ฌ๊ฐํ ๋์ด ๊ตฌํ๊ธฐ (0) | 2023.04.17 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๋จธ์ฑ์ด๋ณด๋ค ํค ํฐ ์ฌ๋ (0) | 2023.04.15 |