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

์•Œ๊ณ ๋ฆฌ์ฆ˜(6) : ๋ฌธ์ž์—ด์„ ์ •์ˆ˜๋กœ ๋ฐ”๊พธ๊ธฐ _ Lv.1

by oranssy 2022. 11. 2.
728x90
๋ฐ˜์‘ํ˜•

โญ๏ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜(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์„ ์ ˆ๋Œ€ ์‚ฌ์šฉํ•˜์ง€ ๋ง ๊ฒƒ!์„ ํ™•์ธํ•˜์„ธ์š”. ] ๋ผ๋Š” ๋ฌธ๊ตฌ๊ฐ€ ๋‚˜์˜จ๋‹ค.

728x90
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€