๐Ÿ’ป ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๐Ÿ”ป/๐Ÿฆ Algorithm-Note

์ˆซ์ž๋งŒ ์ถ”์ถœํ•˜๊ธฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (๋ฌธ์ž์—ด ํƒ์ƒ‰) - ์ˆซ์ž ํŒ๋ณ„์— ์œ ์šฉํ•œ isNaN

output7 2022. 3. 8. 13:21

์ˆซ์ž๋งŒ ์ถ”์ถœํ•˜๊ธฐ

๋ฌธ์ œ : ๋ฌธ์ž์™€ ์ˆซ์ž๊ฐ€ ์„ž์—ฌ์žˆ๋Š” ๋ฌธ์ž์—ด์ด ์ฃผ์–ด์ง€๋ฉด ๊ทธ ์ค‘ ์ˆซ์ž๋งŒ ์ถ”์ถœํ•˜์—ฌ ๊ทธ ์ˆœ์„œ๋Œ€๋กœ ์ž์—ฐ์ˆ˜๋ฅผ ๋งŒ๋“œ์‹œ์˜ค. "a0b1c2d3e4"์—์„œ ์ˆซ์ž๋งŒ ์ถ”์ถœํ•˜๋ฉด 0, 1, 2, 3, 4์ด๊ณ  ์ด๊ฒƒ์„ ์ž์—ฐ์ˆ˜๋กœ ๋งŒ๋“ค๋ฉด 1234๊ฐ€ ๋œ๋‹ค.

 

 

ํ•ด์„ค


์ฒซ ๋ฒˆ์งธ ๋ฐฉ๋ฒ•
1. ํŒฐ๋ฆฐ๋“œ๋กฌ์—์„œ ํ’€์—ˆ๋˜ ๋ฐฉ๋ฒ•์œผ๋กœ ์ˆซ์ž๋ฅผ ์ œ์™ธํ•œ ๋ชจ๋“  ๋ฌธ์ž์—ด์„ ์ œ๊ฑฐํ•œ๋‹ค.
https://outputor.tistory.com/151



๋‘ ๋ฒˆ์งธ ๋ฐฉ๋ฒ•
1. ๋ฌธ์ž์—ด ํ•˜๋‚˜ ํ•˜๋‚˜ ์ˆซ์ž์ธ ๊ฒฝ์šฐ ๋ณ€์ˆ˜์— ๋”ํ•œ๋‹ค.
2. ๋”ํ•ด์ง„ ๋ณ€์ˆ˜๋ฅผ ์ž์—ฐ์ˆ˜๋กœ ๋ฐ”๊พผ๋‹ค.


์„ธ ๋ฒˆ์งธ ๋ฐฉ๋ฒ•(์ž์—ฐ์ˆ˜๋ฅผ ๋งŒ๋“ค ๋•Œ parseInt๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ)
1. ๋”ํ•  ๋ณ€์ˆ˜์— 10์„ ๊ณฑํ•ด์ค˜์„œ ์ž๋ฆฌ์ˆ˜๋ฅผ ํ•œ ์ž๋ฆฌ์”ฉ ๋Š˜๋ฆฐ ํ›„ ์ˆซ์ž๋ฅผ ๋”ํ•œ๋‹ค. 

 

ํŒฐ๋ฆฐ๋“œ๋กฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (๋ฌธ์ž์—ด ํƒ์ƒ‰) - replaceAll ์ฒ˜๋Ÿผ replace ์‚ฌ์šฉํ•˜๊ธฐ, split์œผ๋กœ ๋ฌธ์ž์—ด ๋’ค์ง‘๋Š” ๋ฐฉ๋ฒ•

ํŒฐ๋ฆฐ๋“œ๋กฌ ์•ž์—์„œ ์ฝ์„ ๋•Œ๋‚˜ ๋’ค์—์„œ ์ฝ์„ ๋•Œ๋‚˜ ๊ฐ™์€ ๋ฌธ์ž์—ด์„ ํŒฐ๋ฆฐ๋“œ๋กฌ์ด๋ผ๊ณ  ํ•œ๋‹ค. ๋ฌธ์ œ : ์ž…๋ ฅ๋œ ๋ฌธ์ž์—ด์ด ํŒฐ๋ฆฐ๋“œ๋กฌ์ด๋ฉด "YES"๋ฅผ ์•„๋‹ˆ๋ฉด "NO"๋ฅผ ์ถœ๋ ฅํ•˜์‹œ์˜ค. (์•ŒํŒŒ๋ฒณ ์ด์™ธ์˜ ๋ฌธ์ž๋“ค์„ ๋ฌด์‹œํ•˜๊ณ ,

outputor.tistory.com

 

 

isNaN


isNaN(๊ฐ’) ์ฃผ์–ด์ง„ ๊ฐ’์ด NaN์ด๋ฉด true, ์•„๋‹ˆ๋ฉด false๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
์ˆซ์ž์ธ์ง€ ํŒ๋ณ„ํ•  ๋•Œ ์œ ์šฉํ•˜๋‹ค.


isNaN(NaN);       // ์ฐธ
isNaN(undefined); // ์ฐธ
isNaN({});        // ์ฐธ

isNaN(true);      // ๊ฑฐ์ง“
isNaN(null);      // ๊ฑฐ์ง“
isNaN(37);        // ๊ฑฐ์ง“


// ๋ฌธ์ž์—ด
isNaN("37");      // ๊ฑฐ์ง“: "37"์€ NaN์ด ์•„๋‹Œ ์ˆซ์ž 37๋กœ ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค
isNaN("37.37");   // ๊ฑฐ์ง“: "37.37"์€ NaN์ด ์•„๋‹Œ ์ˆซ์ž 37.37๋กœ ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค
isNaN("123ABC");  // ์ฐธ: parseInt("123ABC")๋Š” 123์ด์ง€๋งŒ Number("123ABC")๋Š” NaN์ž…๋‹ˆ๋‹ค
isNaN("");        // ๊ฑฐ์ง“: ๋นˆ ๋ฌธ์ž์—ด์€ NaN์ด ์•„๋‹Œ 0์œผ๋กœ ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค
isNaN(" ");       // ๊ฑฐ์ง“: ๊ณต๋ฐฑ์ด ์žˆ๋Š” ๋ฌธ์ž์—ด์€ NaN์ด ์•„๋‹Œ 0์œผ๋กœ ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค


// dates
isNaN(new Date());                // ๊ฑฐ์ง“
isNaN(new Date().toString());     // ์ฐธ

 

 

for...of


for...of ๋ช…๋ น๋ฌธ์€ ๋ฐ˜๋ณต๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด(Array, Map, Set, String, TyedArray, arguments ๊ฐ์ฒด ๋“ฑ์„ ํฌํ•จ)์˜ ๊ฐ ๊ฐœ๋ณ„ ํ•ญ๋ชฉ์— ๋Œ€ํ•ด ์‹คํ–‰๋ฌธ์ด ๋ฐ˜๋ณต๋œ๋‹ค.

const array1 = ['a', 'b', 'c'];

for (const element of array1) {
  console.log(element);
}

// expected output: "a"
// expected output: "b"
// expected output: "c"

 

 

CODE

// ์ฒซ ๋ฒˆ์งธ ๋ฐฉ๋ฒ•
function solution(str) {
    let answer = '';
    answer = str.replace(/[^0-9]/g, '');
    return parseInt(answer);
}
let str = 'a0b1c2d3e4f5g6';
console.log(solution(str));
      
      

// ๋‘ ๋ฒˆ์งธ ๋ฐฉ๋ฒ•
function solution(str) {
    let answer = '';
    for (let x of str) {
      console.log(x);
      if (!isNaN(x)) {
        answer += x;
      }
    }
    return parseInt(answer);
}
let str = 'a0b1c2d3e4f5g6';
console.log(solution(str));
      


// ์„ธ ๋ฒˆ์งธ ๋ฐฉ๋ฒ•
function solution(str) {
    let answer = '';
    for (let x of str) {
      console.log(x);
      if (!isNaN(x)) {
        answer = answer * 10 + Number(x);
      }
    }
	return answer;
}
let str = 'a0b1c2d3e4f5g6';
console.log(solution(str));