Algorithm/μΈν”„λŸ°(inflearn)

[JavaScript/section 3] 03 - 숫자만 μΆ”μΆœ

_μ„±ν˜Έ_ 2022. 9. 12. 04:28
728x90
λ°˜μ‘ν˜•

πŸ“Œ 문제

λ¬Έμžμ™€ μˆ«μžκ°€ μ„žμ—¬μžˆλŠ” λ¬Έμžμ—΄μ΄ μ£Όμ–΄μ§€λ©΄ κ·Έ 쀑 숫자만 μΆ”μΆœν•˜μ—¬ κ·Έ μˆœμ„œλŒ€λ‘œ μžμ—°μˆ˜λ₯Ό λ§Œλ“ λ‹€. λ§Œμ•½ "tge0a1h205er"μ—μ„œ 숫자만 μΆ”μΆœν•˜λ©΄ 0, 1, 2, 0, 5이고 이것을 μžμ—°μˆ˜λ₯Ό λ§Œλ“€λ©΄ 1205이 λœλ‹€.

 

πŸ“ 풀이

πŸ§‘πŸ»‍πŸ’» λ‚˜μ˜ 풀이 방법

λ¬Έμžμ—΄μ˜ 각 λ¬Έμžλ“€μ„ λŒλ©΄μ„œ charCodeAt() λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ μ•„μŠ€ν‚€ μ½”λ“œκ°€ 65("A") 미만인 κ²½μš°μ—λ§Œ answer λ³€μˆ˜μ— λˆ„μ μ‹œν‚¨λ‹€.

// λ‚˜μ˜ 풀이 방법
function solution(str) {
  let answer = '';

  for (let x of str) {
    if (x.charCodeAt() < 65) answer += x;
  }

  return parseInt(answer);
}

let str = 'g0en2T0s8eSoft';
console.log(solution(str));

 

πŸ‘¨πŸΌ‍🏫 κ°•μ‚¬λ‹˜ 풀이 방법

λ¬Έμžμ—΄μ˜ 각 λ¬Έμžλ“€μ„ λŒλ©΄μ„œ isNaN() λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ NaN(Not a Number)이 μ•„λ‹Œ κ²½μš°μ—λ§Œ answer λ³€μˆ˜μ— λˆ„μ μ‹œν‚¨λ‹€.

// κ°•μ‚¬λ‹˜ 풀이 방법
function solution(str) {
  let answer = '';

  for (let x of str) {
    if (!isNaN(x)) answer += x;
  }

  return parseInt(answer);
}

let str = 'g0en2T0s8eSoft';
console.log(solution(str));

 

🧐 Number.isNaN() ?

μ–΄λ–€ 값이 NaN(Not a Number)인지 νŒλ³„ν•˜λŠ” λ©”μ„œλ“œμ΄λ‹€.

function milliseconds(x) {
  if (isNaN(x)) {
    return 'Not a Number!';
  }
  return x * 1000;
}

console.log(milliseconds('100F'));
// expected output: "Not a Number!"

console.log(milliseconds('0.0314E+2'));
// expected output: 3140

 

πŸ“š μ°Έκ³  μ‚¬μ΄νŠΈ

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/isNaN

 

isNaN() - JavaScript | MDN

isNaN() ν•¨μˆ˜λŠ” μ–΄λ–€ 값이 NaN인지 νŒλ³„ν•©λ‹ˆλ‹€. isNaN ν•¨μˆ˜λŠ” λͺ‡λͺ‡ ν˜Όλž€μŠ€λŸ¬μš΄ μΌ€μ΄μŠ€μ„ κ°€μ§€κ³  μžˆμœΌλ―€λ‘œ, ECMAScript 2015μ—μ„œ μΆ”κ°€ν•œ Number.isNaN()으둜 λ°”κΎΈλŠ” 편이 쒋을 μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

developer.mozilla.org