๋ฌธ์
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
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๋ ๊ณ ๋ฏผํ ์ ์๋ ๋ฅ๋ ฅ์ด ๋์ผ๋ฉด,,....
'๐๋ฉ > ๊ณต๋ถ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ ๋ก์ด ์น๊ฒ์] Javascript : 1~9 ์ซ์ ์ค ๋๋ค์ผ๋ก ์ค๋ณต ์๋ ๋ค์๋ฆฟ์ ๋ง๋ค๊ธฐ! (0) | 2022.11.01 |
---|---|
Javascript : ์ด์งํ์ (0) | 2022.11.01 |
Javascript : Math. ์๋ฆฌ์ฆ(์ ๋ฆฌ์ค) (0) | 2022.10.25 |
Javascript : ๋ ผ๋ฆฌ์ฐ์ฐ์ ์ ๋ฆฌ (0) | 2022.10.22 |
Javascript : NaN ์์์ ์ด๋ฐค์ด ํ๋ฅด๊ณ ํ๋ฅด๋ฉด (0) | 2022.10.10 |