Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 스택
- NextAuth
- react
- 큐
- nextjs
- never타입
- 블로그만들기
- JavaScript
- TypeScript
- 알고리즘
- react-query
- textarea autosize
- 빅오
- nestjs
- 그리디
- 라이프사이클
- cookie
- 투포인터
- 슬라이딩윈도우
- Algorithm
- isNaN
- aws lightsail
- styled-components
- js알고리즘
- 해쉬
- next.js
- 정렬
- tailwindcss
- typscript
- 버블정렬
Archives
- Today
- Total
far
[JS 알고리즘] 숫자만 추출 본문
숫자만 추출
문자와 숫자가 섞여있는 문자열이 주어지면 그 중 숫자만 추출하여 그 순서대로 자연수를 만 듭니다. 만약 “tge0a1h205er”에서 숫자만 추출하면 0, 1, 2, 0, 5이고 이것을 자연수를 만들면 1205이 됩니다.
추출하여 만들어지는 자연수는 100,000,000을 넘지 않습니다.
입력설명
첫 줄에 숫자가 썩인 문자열이 주어집니다. 문자열의 길이는 50을 넘지 않습니다.
출력설명
첫 줄에 자연수를 출력합니다.
입력예제
g0en2T0s8eSoft
출력예제
208
// 나의 풀이
function solution(str){
// parseInt가 앞자리 0을 잘라버림
let answer = str.replace(/[^0-9]/g, '');
return parseInt(answer, 10);
}
let str="g0en2T0s8eSoft";
console.log(solution(str));
정규표현식을 사용해 숫자만 추출했다.
이번 문제를 통해 parseInt를 사용하면 맨 앞자리 0을 잘라버린다는 사실을 처음 알았다.
// 강의의 풀이
function solution(str){
let answer="";
for(let x of str){
if(!isNaN(x)) answer+=x; isNaN(x)숫자냐 아니냐
}
return parseInt(answer);
}
강의에서는 isNaN을 사용해 문제를 풀었다. 아무래도 정규표현식을 사용하면 백트래킹 때문에 알고리즘의 속도가 느려지니까 그런가보다.
isNaN에 대해서
'알고리즘 > 알고리즘 베이스' 카테고리의 다른 글
[JS 알고리즘] 문자열 압축 (0) | 2023.03.25 |
---|---|
[JS 알고리즘] 가장 짧은 문자거리 (0) | 2023.03.25 |
[JS 알고리즘] 유효한 팰린드롬 (0) | 2023.03.25 |
[JS 알고리즘] 회문 문자열 (0) | 2023.03.25 |
[JS 알고리즘] 봉우리 (0) | 2023.03.22 |
Comments