๐ป ์๋ฐ์คํฌ๋ฆฝํธ ๐ป/๐ฆ 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));