๋ฌธ์ œ

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

 

 

๋‚ด ํ’€์ด

์ผ๋‹จ ๋ฌธ์ œ๋ฅผ ์ข€ ์ด์ƒํ•˜๊ฒŒ ์ดํ•ดํ•œ ๊ฒƒ ๊ฐ™์€๋ฐ.. ์–ด์จŒ๋“  ํ’€์—ˆ์Œ ใ…Žใ…Ž

<๋‚ด๊ฐ€ ์ดํ•ดํ•œ ๋ฐฉ์‹>

- ๋ฌธ์ œ ์ œํ•œ ์‚ฌํ•ญ ๋งจ ์ฒซ๋ฒˆ์งธ๋ฅผ ๋ณด๋ฉด, polynomial์— ์žˆ๋Š” '์ˆ˜'๋Š” 0์ดˆ๊ณผ 100๋ฏธ๋งŒ์ด๋ผ๊ณ  ๋˜์–ด์žˆ๋‹ค.

๋‚˜๋Š” ์ด ๋ฌธ์žฅ์„ polynomial์—์„œ '์ˆซ์ž'์— ํ•ด๋‹น๋˜๋Š”, ์ฆ‰ x์˜ ๊ณ„์ˆ˜ ํ˜น์€ ์ƒ์ˆ˜์˜ ๋ฒ”์œ„๊ฐ€ 1๋ถ€ํ„ฐ~ 99๊นŒ์ง€ ๋ผ๊ณ  ์ดํ•ดํ–ˆ๋‹ค.

(๊ทผ๋ฐ ๊ฐ™์ด ํ‘ผ ์นœ๊ตฌ์—๊ฒŒ ๋ฌผ์–ด๋ณด๋‹ˆ ๊ฑ”๋Š” polynomial์— ์žˆ๋Š” ๋ฉ์–ด๋ฆฌ(+์—ฐ์‚ฐ์ž๋กœ ์—ฎ์ธ ํ•˜๋‚˜์˜ ๋‹คํ•ญ์‹ ๋ฉ์–ด๋ฆฌ)์˜ ์ˆ˜ ๋ผ๊ณ  ํ•ด์„ํ–ˆ๋‹ค.)

 

-๋˜ํ•œ 3๋ฒˆ์งธ ์ œํ•œ์‚ฌํ•ญ์€ polynomial์—์„œ '์ˆซ์ž'๋ถ€๋ถ„์„ ๋‹ด๋‹นํ•˜๋Š” ๋ถ€๋ถ„์€ 0~9์˜ ์ •์ˆ˜๋กœ '์ด๋ฃจ์–ด'์ง„๋‹ค๊ณ  ํ–ˆ์œผ๋ฏ€๋กœ

x์˜ ๊ณ„์ˆ˜, ํ˜น์€ ์ƒ์ˆ˜๋Š” ํ•œ์ž๋ฆฟ์ˆ˜ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ๋‘์ž๋ฆฟ ์ˆ˜ ์ผ ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•จ. (์ฒซ๋ฒˆ์งธ ์ œํ•œ์‚ฌํ•ญ์—์„œ ์ˆ˜์˜ ๋ฒ”์œ„๊ฐ€ 1~99๊นŒ์ง€ ์ด๋ฏ€๋กœ)

 

๊ทธ๋ž˜์„œ ํ•ด๊ฒฐํ•œ ๋‚˜์˜ ์ฝ”๋“œ๋Š”

-x์˜ ๊ณ„์ˆ˜ ํ˜น์€ ์ƒ์ˆ˜๊ฐ€ ํ•œ์ž๋ฆฟ์ˆ˜ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ๋‘์ž๋ฆฟ์ˆ˜ ์ผ๋•Œ๋„ ๊ฐ€๋Šฅํ•˜๋ฉฐ

-x์˜ ์•ž์— 0์ด ๋“ค์–ด๊ฐ€๋„ ๋˜์ง€๋งŒ(์ œํ•œ์‚ฌํ•ญ์—์„œ๋Š” x์•ž์— 0์ด ์—†์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์œผ๋กœ ํ•ด์„ํ–ˆ์œผ๋‚˜, ์ฝ”๋“œ๋ฅผ ์งœ๋‹ค๋ณด๋‹ˆ '0x'์™€ ๊ฐ™์€ ๊ฒƒ๋„ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๊ฒŒ ์งค ์ˆ˜ ์žˆ์—ˆ๋‹ค!)

-polynomial์ด ๋นˆ ๋ฌธ์ž์—ด์ด๋ฉด ์•ˆ ๋œ๋‹ค. (๋นˆ ๋ฌธ์ž์—ด ๋„ฃ์œผ๋ฉด 'NaN'์ด๋ผ๊ณ  ๋‚˜์˜ด ใ…กใ…ก)

 

<๋‚ด๊ฐ€ ํ•ด๊ฒฐํ•œ ๋ฐฉ์‹>

1. ์šฐ์„  input์œผ๋กœ ์ฃผ์–ด์ง€๋Š” polynomial์˜ ๊ผฌ๋ผ์ง€๋ฅผ ๋ณด๋‹ˆ, +์—ฐ์‚ฐ์ž๋กœ ๋ฉ์–ด๋ฆฌ๊ฐ€ ๊ตฌ๋ถ„ ๋˜์—ˆ์œผ๋ฏ€๋กœ +๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ฐฐ์—ด์„ ์ชผ๊ฐœ์ค€๋‹ค.

2. 'x'๋ฅผ ํฌํ•จํ•˜๋Š” ๋ฉ์–ด๋ฆฌ๋งŒ ๋”ฐ๋กœ ๋นˆ ๋ฐฐ์—ด(x_arr)์„ ์ƒ์„ฑํ•˜๊ณ  ๊ฑฐ๊ธฐ ๋„ฃ์–ด์ค€๋‹ค.

3. ์ƒ์ˆ˜, ์ฆ‰ 'x'๋ฅผ ํฌํ•จํ•˜์ง€ ์•Š๋Š” ๋ฉ์–ด๋ฆฌ๋“ค์€ ์ƒ์ˆ˜๋งŒ ๋ชจ์•„๋‘๋Š” ๋ฐฐ์—ด์„ ๋”ฐ๋กœ ๋งŒ๋“ค์–ด์„œ ๊ฑฐ๊ธฐ ๋„ฃ์–ด์ค€๋‹ค.

4. x_arr์—์„œ x์˜ ๊ณ„์ˆ˜๋Š” ํ•œ์ž๋ฆฟ์ˆ˜ ํ˜น์€ ๋‘์ž๋ฆฟ์ˆ˜ ์ด๋ฏ€๋กœ, for๋ฌธ์œผ๋กœ ์š”์†Œ ํ•˜๋‚˜์”ฉ ์ ‘๊ทผํ•˜๋ฉฐ x๋ฅผ ์—†์• ์คŒ + ๊ณ„์ˆ˜์˜ ํ•ฉ์„ ๊ตฌํ•จ.

*์ด๋•Œ, x์˜ ๊ณ„์ˆ˜๊ฐ€ '1'์ด๋ผ '1'์ด ์ƒ๋žต๋œ ๊ฒฝ์šฐ์—๋Š” x์•ž์— ์ˆซ์ž๊ฐ€ ์•„์˜ˆ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋”ฐ๋กœ ์ฒ˜๋ฆฌํ•ด์ค˜์•ผํ•œ๋‹ค.('x'ํ˜ผ์ž ์žˆ์œผ๋ฉด ๊ณ„์ˆ˜์˜ ํ•ฉ์— 1๋งŒ ๋”ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์ฒ˜๋ฆฌ!)

5. ๋งˆ์ง€๋ง‰์œผ๋กœ ๋‹ต์„ ๋ฆฌํ„ดํ• ๋•Œ๋Š” ์กฐ๊ธˆ ์ง€์ €๋ถ„ํ•˜์ง€๋งŒ ์ผ€์ด์Šค๋ฅผ ๋ถ„๋ฅ˜ํ–ˆ๋‹ค.

---์ตœ์ข… ๊ณ„์‚ฐํ•œ x ๊ณ„์ˆ˜์˜ ํ•ฉ์ด 0์ด๊ฑฐ๋‚˜ 1์ดˆ๊ณผ์ธ ์ˆ˜์ผ ๋•Œ(1์ด ์•„๋‹๋•Œ)----๊ทธ ์ค‘์—์„œ๋„ ์ƒ์ˆ˜๊ฐ€ 0 ์ผ๋•Œ(' + 0'์ด ํ•จ๊ป˜ ๋‚˜์˜ค๋ฉด ์•ˆ ๋จ)

                                                                ----๊ทธ ์ค‘์—์„œ x์˜ ๊ณ„์ˆ˜๊ฐ€ 0 ์ผ๋•Œ(์ด๋•Œ๋Š” ์ƒ์ˆ˜๋งŒ ๋ฆฌํ„ดํ•ด์•ผํ•จ)

---์ตœ์ข… ๊ณ„์‚ฐํ•œ x ๊ณ„์ˆ˜์˜ ํ•ฉ์ด 1์ผ๋•Œ----๊ทธ ์ค‘์—์„œ๋„ ์ƒ์ˆ˜๊ฐ€ 0์ผ๋•Œ(' + 0'์ด ๋‚˜์˜ค๋ฉด ์•ˆ ๋˜๋ฏ€๋กœ ๋”ฐ๋กœ ์ฒ˜๋ฆฌํ•ด์คŒ)

 

์ด๋Ÿฐ์‹์œผ๋กœ ์ผ€์ด์Šค ๋ถ„๋ฅ˜ํ•ด์„œ ๋‹ต์„ ๋ฆฌํ„ดํ•˜๋„๋ก ํ•ด์คฌ๋‹ค!

 

๊ทธ๋ฆฌ๊ณ  ์ง„์งœ ์ง„์งœ ์ค‘์š”ํ•œ๊ฑฐ... ๋‚ด๊ฐ€ ์ด๊ฑธ ๋ชป ์ฐพ์•„์„œ 2์‹œ๊ฐ„๋™์•ˆ ํ—ค๋งธ์Œ ใ… ใ… ใ… .....

 

๋งˆ์ง€๋ง‰์— ๋‹ต์„ ๋ฆฌํ„ดํ• ๋•Œ ๋‹ต์„ ๊ผญ 'String'์œผ๋กœ ๋ณ€ํ™˜ํ•ด์ค˜์•ผ ํ•œ๋‹ค.................

์ฒ˜์Œ์— ๋ฌธ์ œ๋ฅผ ์ญ‰ ์ฝ์„ ๋•Œ๋Š” '๋งˆ์ง€๋ง‰์— ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•ด์ค˜์•ผ๊ฒ ๋‹ค!'๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์—ˆ๋Š”๋ฐ

์ฝ”๋“œ๋ฅผ ์งœ๋‹ค๋ณด๋‹ˆ ์ƒˆ์นด๋งฃ๊ฒŒ ์žŠ์–ด๋ฒ„๋ฆฌ๊ณ .. ๋‹ค ์งœ๋†“๊ณ  ๋ณด๋‹ˆ ๋Œ€์ฒด ๋ญ๊ฐ€ ํ‹€๋ ธ์ง€? ํ•˜๋ฉด์„œ ์ ˆ๋Œ€ ์•ˆ ๋ณด์ž„ ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹

๋‚˜๋„ ์ œ3์ž์˜ ๋ˆˆ์„ ๋นŒ๋ ค.. ๊ฒจ์šฐ ์ฐพ์•˜๋‹ค ใ… ใ… ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹

 

 

ํ•ด๊ฒฐ

var polynomial = '1 + 0 + x';

var arr = polynomial.split(' + ');
console.log(arr);

var x_arr = [];
var num_arr = [];
    
    for (var i = 0; i < arr.length; i++) {
        if(arr[i].includes('x') === true) {
            x_arr.push(arr[i]);
            } else {
                num_arr.push(arr[i]);
            }
        }

    //๊ณ„์ˆ˜    
    var x_num = 0;
    for ( var i = 0; i < x_arr.length; i++) {
        if (x_arr[i] === 'x') {
            x_num += 1;
        } else {
        x_arr[i] = x_arr[i].replace('x', "")
        x_num += parseInt(x_arr[i]);
        }
    }

    //์ƒ์ˆ˜
    var num = 0;
    for (i = 0; i < num_arr.length; i++) {
        num += parseInt(num_arr[i]);
    }

    
    var answer = '';
    if (x_num != 1) { 
    answer = x_num + 'x' + ' + ' + num;
        if (num === 0) {
            answer = x_num + 'x';
        }
        if (x_num === 0) {
            answer = num;
        }
    } else {
        answer = 'x' + ' + ' + num;
        if (num === 0) {
            answer = 'x';
        }
    }
    console.log(String(answer));

์ด ์ฝ”๋“œ์—์„œ ๋งจ ์•„๋ž˜ console.log๋ถ€๋ถ„๋งŒ return์œผ๋กœ ๋ฐ”๊ฟ”์ฃผ๊ณ ,

๋งจ ์œ„ ๋‚ด๊ฐ€ ์˜ˆ์‹œ๋กœ ์ž…๋ ฅ ๊ฐ’ ๋„ฃ์€ var polynomial ๋ถ€๋ถ„ ์ œ์™ธํ•ด์„œ function ์•ˆ์— ๋„ฃ์–ด์ฃผ๋ฉด ๋œ๋‹ค!

 

 

๋—.

 

 

๊ทธ๋‚˜์ €๋‚˜ ๋งˆ์ง€๋ง‰ ์ฃผ ๋ฌธ์ œ๋“ค์€ ์ƒ๋‹นํžˆ ใ…‹ใ…‹ใ…‹ ์‰ฝ์ง€ ์•Š๊ตฐ!

๊ทธ๋ž˜๋„ ๋ญ”๊ฐ€ ๊ณ ๊ตฐ๋ถ„ํˆฌํ•˜๋ฉด์„œ ๋ฐฐ์šฐ๋Š”๊ฒŒ ์žˆ์œผ๋‹ˆ ๋„ˆ๋ฌด ์žฌ๋ฐŒ๋‹นใ…Žใ…Žใ…Žใ…Žใ…Ž

์–ผ๋ฅธ ๋ ˆ๋ฒจ 2, 3๋„ ๊ณ ๋ฏผํ•  ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ์ด ๋์œผ๋ฉด,,....

+ Recent posts