๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

ํ”„์—” ๊ณต๋ถ€/๐Ÿซง ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณต๋ถ€

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/Javascript] ๋‹คํ•ญ์‹ ๋”ํ•˜๊ธฐ || ์ฝ”๋”ฉํ…Œ์ŠคํŠธ

728x90
function solution(polynomial) {
    const polyArr = polynomial.split("+").map(v => v.trim()).map(v => v === 'x' ? '1' + v : v);
    const xArr = [];
    const number = [];
    polyArr.map(v => v.match(/[0-9]+[x]/g) ? xArr.push(v.replace('x', "")) : number.push(v));
    const xNumSum = xArr.length > 0 ? xArr.reduce((a, b) => Number(a) + Number(b)) : '';
    const numSum = number.length > 0 ? number.reduce((a, b) => Number(a) + Number(b)) : '';

    if (xNumSum === '1') {
        return xNumSum && numSum ? `x + ${numSum}` : xNumSum && !numSum ? `x` : `${numSum}`;
    } else {
        return xNumSum && numSum ? `${xNumSum}x + ${numSum}` : xNumSum && !numSum ? `${xNumSum}x` : `${numSum}`;
    }
}

 

์—์ž‰ ๋ณ„๋กœ ์•ˆ์–ด๋ ต๋„ค ํ•˜๋‹ค๊ฐ€ 1x ๊ฐ€ ๋‚˜์˜ค๋Š” ์ƒํ™ฉ์„ ์ •ํ™•ํžˆ ๊ณ ๋ ค ์•ˆํ•ด์„œ ์‹œ๊ฐ„์ด ์˜ค๋ž˜๊ฑธ๋ ธ๋‹ค. 

์ฒจ์—” '1x' -> 'x' ๋กœ replace ํ–ˆ๋Š”๋ฐ, ๋‚˜์ค‘์— ๋ณด๋‹ˆ 11x๋„ ๋ณ€๊ฒฝ๋จ. 

 

x๊ฐ€ 1์ธ ์ƒํ™ฉ์—์„œ

xํ•ญ๊ณผ ์ƒ์ˆ˜ ํ•ญ์ด ๋‘˜ ๋‹ค ์žˆ๋Š” ๊ฒฝ์šฐ / 

ํ•˜๋‚˜์”ฉ๋งŒ ์žˆ๋Š” ๊ฒฝ์šฐ ์ค‘ xํ•ญ๋งŒ ์žˆ๋Š” ๊ฒฝ์šฐ์—๋„ x ๋งŒ ์ถœ๋ ฅ๋˜๊ฒŒ ํ•ด์•ผํ•จ. 

 

x๊ฐ€ 1์ด ์•„๋‹Œ ์ƒํ™ฉ

xํ•ญ๊ณผ ์ƒ์ˆ˜ํ•ญ์ด ๋‘˜ ๋‹ค ์žˆ๋Š” ๊ฒฝ์šฐ / 

ํ•˜๋‚˜์”ฉ๋งŒ ์žˆ๋Š” ๊ฒฝ์šฐ - > reduce ํ•œ ์ˆ˜๋ฅผ ์•ž์— ๋ถ™์—ฌ์คŒ.

 

 

1x, 11x, 10x, ๋‹ค๋ฅธ ์ˆ˜x,  1x + ์ƒ์ˆ˜, ๋‹ค๋ฅธ์ˆ˜x + ์ƒ์ˆ˜, ์ƒ์ˆ˜๋งŒ

์ด ๋ชจ๋“  ๊ฒฝ์šฐ๋ฅผ ์—ผ๋‘ํ•ด๋‘๊ณ  ์ฝ”๋“œ๋ฅผ ์งœ์•ผํ•œ๋‹ค.  

(0์€ ์•ˆ๋‚˜์˜ด)

 

 

โœ… ์ •๊ทœ์‹์„ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋” ์ž˜ ์•Œ๊ฒŒ ๋๋‹ค. 

/[0-9][x]/g => 123x 9x 43x 10x

/[0-9]+[x]/g => 123x 9x 43x 10x

 

 

 

 

 

๋ช‡ ํŽ˜์ด์ง€ ์žˆ์—ˆ๋Š”๋ฐ ์ด์ œ ๋์ด ๋ณด์ธ๋‹ค....!!!

728x90
๋ฐ˜์‘ํ˜•