숫자만 추출
문자와 숫자가 섞여있는 문자열이 주어지면 그 중 숫자만 추출하여 그 순서대로 자연수를 만
듭니다.
만약 “tge0a1h205er”에서 숫자만 추출하면 0, 1, 2, 0, 5이고 이것을 자연수를 만들면 1205
이 됩니다.
추출하여 만들어지는 자연수는 100,000,000을 넘지 않습니다.
▣ 입력설명
첫 줄에 숫자가 썩인 문자열이 주어집니다. 문자열의 길이는 50을 넘지 않습니다.
▣ 출력설명
첫 줄에 자연수를 출력합니다.
▣ 입력예제 1
g0en2T0s8eSoft
▣ 출력예제 1
208
문제를 이해해보면 어떤 숫자와 문자가 섞여있는 문자열이 주어지면
그안에서 숫자만 출력해주면 되는것이다. (단, 자연수만)
[정규표현식]
1. 정규표현식 사용함
2. 0208이 출력됨-> 0은 제외하고 자연수로 만들어야하니까 parseInt를 사용하여 정수로 만들어줌
[for문사용]
1. for문 사용
2. 조건문에 isNaN을 부정문으로 만들어주고
isNaN() - 매개변수가 숫자인지 검사하는 함수사용
숫자면 false
숫자가아니면 true 반환
📌작성코드 (정규표현식 사용)
<html>
<head>
<meta charset="UTF-8">
<title>출력결과</title>
</head>
<body>
<script>
function solution(str) {
let answer;
answer = str.replace(/[^0-9]/gi, '')
//0부터 9까지의 모든 숫자를 찾아줘, 앞에 ^는 첫글자부터 매칭시켜야하기때문에 붙어야함
return parseInt(answer);
}
let str = "g0en2T0s8eSoft";
console.log(solution(str));
</script>
</body>
</html>
정규표현식 사용 참고👇
(for문 if문 사용)
<html>
<head>
<meta charset="UTF-8">
<title>출력결과</title>
</head>
<body>
<script>
function solution(str) {
let answer = '';
for (let i = 0; i < str.length; i++) {
if (!isNaN(str[i])) {
answer = answer + str[i]
}
}
return parseInt(answer);
}
let str = "g0en2T0s8eSoft";
console.log(solution(str));
</script>
</body>
</html>
자바스크립트 내장함수인 isNaN를 사용해서 숫자만 추출해준다.
👇
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/isNaN
str[i]의 인텍스가 숫자이면 false 아니면 true를 반환하고,
false로 만들어주기위해 !낫연산자로 만들어주었다.
결과값에 저장해주면 정상출력됨.
매개변수가 숫자가 아니면 true, 숫자이면 false를 반환한다.
'알고리즘' 카테고리의 다른 글
[알고리즘 문제] 3-5번 (0) | 2022.06.10 |
---|---|
[알고리즘 문제] 3-4번 (0) | 2022.06.10 |
[알고리즘 문제] 3-2번 (0) | 2022.06.08 |
[알고리즘 문제] 3-1번 (0) | 2022.06.08 |
[알고리즘 문제] 2-6번 (0) | 2022.06.07 |