โญ๏ธ ์๊ณ ๋ฆฌ์ฆ(6) : ๋ฌธ์์ด์ ์ ์๋ก ๋ฐ๊พธ๊ธฐ _ Lv.1 โญ๏ธ
01. ๋ฌธ์ ์ค๋ช
๐งฉ ๋ฌธ์์ด s๋ฅผ ์ซ์๋ก ๋ณํํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ ํจ์, solution์ ์์ฑํ์ธ์.
๐งฉ ์๋ฅผ ๋ค์ด str์ด "1234"์ด๋ฉด 1234๋ฅผ ๋ฐํํ๊ณ , "-1234"์ด๋ฉด -1234๋ฅผ ๋ฐํํ๋ฉด ๋ฉ๋๋ค.
๐งฉ str์ ์๋ชป๋ ๊ฐ์ด ์
๋ ฅ๋๋ ๊ฒฝ์ฐ๋ ์์ต๋๋ค.
๐ ์ ํ ์กฐ๊ฑด : โ๏ธ s์ ๊ธธ์ด๋ 1 ์ด์ 5์ดํ ์
๋๋ค. โ๏ธ s์ ๋งจ์์๋ ๋ถํธ(+, -)๊ฐ ์ฌ ์ ์์ต๋๋ค. โ๏ธ s๋ ๋ถํธ์ ์ซ์๋ก๋ง ์ด๋ฃจ์ด์ ธ์์ต๋๋ค. โ๏ธ s๋ "0"์ผ๋ก ์์ํ์ง ์์ต๋๋ค.
02. " solution.js " ๋ฌธ์ ํ์ด๋ณด๊ธฐ
๐ก ์กฐ๊ฑด์์ ๋ฌธ์์ด์ ๋ถํธ์ ์ซ์๋ก๋ง ๊ตฌ์ฑ๋์ด ์์ผ๋ฏ๋ก, ๋ฌธ์์ด ๊ทธ๋๋ก๋ฅผ ์ถ๋ ฅํ๋ ์์ ์๊ฐํด๋ณด์.
const str = "-3524";
function solution(s) {
return +s; // ๋ฌธ์์ด์ ์ฌ์น์ฐ์ฐ์ผ๋ก ๊ณ์ฐํ๋๋ก ํ๋ฉด, js๋ str์ num์ผ๋ก ์ถ๋ ฅํจ
} // + ์ธ์๋ /1, *1, +0, -0 ๋ฑ์ ์ฌ์ฉํ ์ ์์
// - ๋ฅผ ์ฌ์ฉํ๋ฉด, ๋ฌธ์์ด์ - ๊ฐ ๋ค์ด๊ฐ ์์ ๊ฒฝ์ฐ์ ์ถ๋ ฅ๊ฐ์์ - ๊ฐ ์ฌ๋ผ์ง (+ ๊ฐ์ผ๋ก ๋ณํจ)
console.log(solution(str))
03. ๋ค๋ฅธ ํ์ด ์์๋ณด๊ธฐ
# 1) Number( ) ํ์ฉํ๊ธฐ
const str = "-3524";
function solution(str){
let result = 0;
result = Number(str);
return result;
}
console.log(solution(str))
___ ์ฐธ๊ณ ํ๊ธฐ ___
`1 Number( ) : ๋ฌธ์์ด์ ์ซ์๋ก ๋ณํํ์ฌ ๋ฐํํฉ๋๋ค.
# 2) parseInt( ) ํ์ฉํ๊ธฐ
const str = "-3524";
let solution = parseInt;
console.log(solution(str))
___ ์ฐธ๊ณ ํ๊ธฐ ___
`1 parseInt( ) : ๋ฌธ์์ด ์ธ์๋ฅผ ์ซ์๋ก ๋ณ๊ฒฝํ์ฌ ๋ฐํํฉ๋๋ค. Number( )์ ๊ฐ์ ๊ธฐ๋ฅ์ ํ๋ฉฐ,
์ฐจ์ด์ ์ ์ดํด๋ณด์๋ฉด Number( )์ ๋ฌธ์์ด์ ์ซ์๊ฐ ์๋ ๋ฌธ์๊ฐ ์์ ๊ฒฝ์ฐ ๋ฌด์กฐ๊ฑด NaN ๊ฐ์ด ์ ์ฅ๋๊ณ
parseInt( )๋ ๋ฌธ์์ด์ด ์ซ์๋ก ์์ํ๊ณ ๋ฌธ์๊ฐ ๊ปด์์ ๊ฒฝ์ฐ ๋ฌธ์ ์ ๊น์ง๋ง ์ซ์๋ก ํ๋ณํ ํ ์ ์ฅ๋๋ค๋ ๊ฒ.
# 3) valueOf( ) ํ์ฉํ๊ธฐ
const str = "-3524";
function solution(str){
let result = 0;
result = str.valueOf();
return result;
}
console.log(solution(str))
___ ์ฐธ๊ณ ํ๊ธฐ ___
`1 Object.prototype.valueOf( ) : ํน์ ๊ฐ์ฒด์ ์์ ๊ฐ์ ๋ฐํํฉ๋๋ค. ๊ฐ์ฒด๊ฐ ์์ ๊ฐ์ ๊ฐ์ง๊ณ ์์ง ์๋ค๋ฉด, valueOf๋ ๊ฐ์ฒด ์ค์ค๋ก๋ฅผ ๋ฐํํฉ๋๋ค.
# 4) test( ) ํ์ฉํ๊ธฐ
const str = "-3524";
function solution(str){
if (/^(\-|\+)?([0-9]+|Infinity)$/.test(str))
return Number(str);
return NaN;
}
console.log(solution(str))
___ ์ฐธ๊ณ ํ๊ธฐ ___
`1 RegExp.prototype.test( ) : ์ฃผ์ด์ง ๋ฌธ์์ด์ด ์ ๊ท ํํ์์ ๋ง์กฑํ๋์ง ํ๋ณํ๊ณ , ๊ทธ ์ฌ๋ถ๋ฅผ true ๋๋ false๋ก ๋ฐํํฉ๋๋ค.
*** ์ฐพ์๋ณด๋ค๊ฐ ์๊ฒ ๋ ๊ฒ โ eval( )์ ์ฌ์ฉํด๋ ๊ฐ์ด ์ถ๋ ฅ๋๋๋ณด๋ค.
MDN ์ ๊ฒ์ํด๋ณด๋, eval( ) : ๋ฌธ์๋ก ํํ๋ JavaScript ์ฝ๋๋ฅผ ์คํํ๋ ํจ์ ๋ผ๊ณ ๋ช
์๋์ด ์๋ค. ๊ทธ๋ฆฌ๊ณ
[ ๋ฌธ์์ด๋ก๋ถํฐ **eval()**์ ์คํํ๋ ๊ฒ์ ์์ฒญ๋๊ฒ ์ํํฉ๋๋ค. **eval()**์ ์ฌ์ฉํ๋ฉด ํด์ปค๊ฐ ์ํํ ์ฝ๋๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์๋์ eval์ ์ ๋ ์ฌ์ฉํ์ง ๋ง ๊ฒ!์ ํ์ธํ์ธ์. ] ๋ผ๋ ๋ฌธ๊ตฌ๊ฐ ๋์จ๋ค.
'Algorithm_JS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์๊ณ ๋ฆฌ์ฆ(8) : ์์ธ์์ ๊น์๋ฐฉ ์ฐพ๊ธฐ _ Lv.1 (1) | 2022.11.03 |
---|---|
์๊ณ ๋ฆฌ์ฆ(7) : ๊ฐ์ด๋ฐ ๊ธ์ ๊ฐ์ ธ์ค๊ธฐ _ Lv.1 (3) | 2022.11.03 |
์๊ณ ๋ฆฌ์ฆ(5) : ์๋ฐ์๋ฐ์๋ฐ์๋ฐ์๋ฐ์? _ Lv.1 (1) | 2022.10.31 |
์๊ณ ๋ฆฌ์ฆ(4) : ์ง์์ ํ์ _ Lv.1 (1) | 2022.10.31 |
์๊ณ ๋ฆฌ์ฆ(3) : ํ๊ท ๊ตฌํ๊ธฐ _ Lv.1 (2) | 2022.10.31 |
๋๊ธ