๐ ๋ฌธ์
ํ ๊ฐ ์ด์์ ํญ์ ํฉ์ผ๋ก ์ด๋ฃจ์ด์ง ์์ ๋คํญ์์ด๋ผ๊ณ ํฉ๋๋ค. ๋คํญ์์ ๊ณ์ฐํ ๋๋ ๋๋ฅํญ๋ผ๋ฆฌ ๊ณ์ฐํด ์ ๋ฆฌํฉ๋๋ค. ๋ง์ ์ผ๋ก ์ด๋ฃจ์ด์ง ๋คํญ์ polynomial์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๋๋ฅํญ๋ผ๋ฆฌ ๋ํ ๊ฒฐ๊ด๊ฐ์ ๋ฌธ์์ด๋ก return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด๋ณด์ธ์. ๊ฐ์ ์์ด๋ผ๋ฉด ๊ฐ์ฅ ์งง์ ์์์ return ํฉ๋๋ค.
๐ ์ ํ์ฌํญ
- 0 < polynomial์ ์๋ ์ < 100
- polynomial์ ๋ณ์๋ 'x'๋ง ์กด์ฌํฉ๋๋ค.
- polynomial์ 0๋ถํฐ 9๊น์ง์ ์ ์, ๊ณต๋ฐฑ, ‘x’, ‘+'๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
- ํญ๊ณผ ์ฐ์ฐ๊ธฐํธ ์ฌ์ด์๋ ํญ์ ๊ณต๋ฐฑ์ด ์กด์ฌํฉ๋๋ค.
- ๊ณต๋ฐฑ์ ์ฐ์๋์ง ์์ผ๋ฉฐ ์์์ด๋ ๋์๋ ๊ณต๋ฐฑ์ด ์์ต๋๋ค.
- ํ๋์ ํญ์์ ๋ณ์๊ฐ ์ซ์ ์์ ์ค๋ ๊ฒฝ์ฐ๋ ์์ต๋๋ค.
- " + 3xx + + x7 + "์ ๊ฐ์ ์๋ชป๋ ์ ๋ ฅ์ ์ฃผ์ด์ง์ง ์์ต๋๋ค.
- "012x + 001"์ฒ๋ผ 0์ ์ ์ธํ๊ณ ๋ 0์ผ๋ก ์์ํ๋ ์๋ ์์ต๋๋ค.
- ๋ฌธ์์ ์ซ์ ์ฌ์ด์ ๊ณฑํ๊ธฐ๋ ์๋ตํฉ๋๋ค.
- polynomial์๋ ์ผ์ฐจ ํญ๊ณผ ์์ํญ๋ง ์กด์ฌํฉ๋๋ค.
- ๊ณ์ 1์ ์๋ตํฉ๋๋ค.
- ๊ฒฐ๊ด๊ฐ์ ์์ํญ์ ๋ง์ง๋ง์ ๋ก๋๋ค.
- 0 < polynomial์ ๊ธธ์ด < 50
๐ ์ ์ถ๋ ฅ ์
polynomial result
"3x + 7 + x" "4x + 7"
"x + x + x" "3x"
๐ ์ ์ถ๋ ฅ ์ ์ค๋ช
์ ์ถ๋ ฅ ์ #1
- "3x + 7 + x"์์ ๋๋ฅํญ๋ผ๋ฆฌ ๋ํ๋ฉด "4x + 7"์ ๋๋ค.
์ ์ถ๋ ฅ ์ #2
- "x + x + x"์์ ๋๋ฅํญ๋ผ๋ฆฌ ๋ํ๋ฉด "3x"์ ๋๋ค.
๐ง ํ์ด
function solution(polynomial) {
// ์ซ์ํ์ด ์๋ ๊ฒฝ์ฐ ์ ์ฒด ํ์
let regex = /[^0-9]/g;
// x, y, ์์ ๊ณ์
let x = 0;
let y = 0;
let r = 0;
// " + " ๊ธฐ์ค์ผ๋ก ๋ฐฐ์ด์ผ๋ก ๋ณํ
let array = polynomial.split(" + ");
// ํ๋์ฉ shift() ํ์ฌ, ์กฐ๊ฑด์ ๋ฐ๋ฅธ ๊ณ์ ํ ๋น
while (array.length != 0) {
let tmp = array.shift();
if (tmp.includes("x")) {
if (tmp === "x") {
x += 1;
} else {
let add_tmp = tmp.replace(regex, "");
x += Number(add_tmp);
}
} else if (tmp.includes("y")) {
if (tmp === "y") {
y += 1;
} else {
let add_tmp = tmp.replace(regex, "");
y += Number(add_tmp);
}
} else {
r += Number(tmp);
}
}
// ๊ณ์์ ๋ณ์ ํฉ์น๊ธฐ ๊ณผ์
let x_array = [];
let y_array = [];
if (x === 0) {
} else if (x === 1) {
x_array.push("x");
} else {
x_array.push(x);
x_array.push("x");
}
if (y === 0) {
} else if (y === 1) {
y_array.push("y");
} else {
y_array.push(y);
y_array.push("y");
}
// ๊ฐ ๊ณ์ + ๋ณ์ ๋ฐฐ์ด ํฉ์น๊ธฐ
let x_join = x_array.join("");
let y_join = y_array.join("");
let answer = []
if (x_join) {
answer.push(x_join);
}
if (y_join) {
answer.push(y_join);
}
if (r != 0) {
answer.push(r);
}
return answer.join(" + ");
}
ใ ใ ใ ใ ใ ใ ์๋, ๋ฌธ์ ๋ฅผ ์ ์ฝ์...
๋ฌธ์ ์ ์์ง๋ ์์ y ๊ณ์๋ ์ ๋ฃ์์ง.
์๋์ฐ ๋ณต์ฑ ๋ฏธ์ณค๋ค..
'๐งฉ Algorithm > ๐ง JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ์์ ์ง๋ (0) | 2023.04.17 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ์จ์ด์๋ ์ซ์์ ๋ง์ (2) (0) | 2023.04.17 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์ต๋๊ฐ ๋ง๋ค๊ธฐ (2) (0) | 2023.04.17 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์บ๋ฆญํฐ์ ์ขํ (0) | 2023.04.17 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์ง์ฌ๊ฐํ ๋์ด ๊ตฌํ๊ธฐ (0) | 2023.04.17 |