๐ŸŒ  ๋ฌธ์ œ

ํ•œ ๊ฐœ ์ด์ƒ์˜ ํ•ญ์˜ ํ•ฉ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ์‹์„ ๋‹คํ•ญ์‹์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋‹คํ•ญ์‹์„ ๊ณ„์‚ฐํ•  ๋•Œ๋Š” ๋™๋ฅ˜ํ•ญ๋ผ๋ฆฌ ๊ณ„์‚ฐํ•ด ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๋ง์…ˆ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋‹คํ•ญ์‹ 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 ๊ณ„์ˆ˜๋Š” ์™œ ๋„ฃ์—ˆ์ง€.

์‰๋„์šฐ ๋ณต์‹ฑ ๋ฏธ์ณค๋„ค..

+ Recent posts