알고리즘

[JS] 알고리즘 기초 정복 3-3번_숫자만 추출

햄❤️ 2021. 7. 15. 19:40
반응형

문제 3-3번

문자와 숫자가 섞여있는 문자열이 주어지면 그 중 숫자만 추출하여 그 순서대로 자연수를 만 듭니다. 만약 “tge0a1h205er”에서 숫자만 추출하면 0, 1, 2, 0, 5이고 이것을 자연수를 만들면 1205 이 됩니다. 추출하여 만들어지는 자연수는 100,000,000을 넘지 않습니다.

 

🍄 입력설명

첫 줄에 숫자가 섞인 문자열이 주어집니다. 문자열의 길이는 50을 넘지 않습니다.

 

🍄 출력설명

첫 줄에 자연수를 출력합니다.

 

🍄 입력예제 1

g0en2T0s8eSoft

 

🍄 출력예제 1

208

 


정답 코드

 1) 정규식 이용 

/[^0-9]/g 는 숫자 0~9가 아닌 것들

/^0/ -> 0인 것 

function solution(s) {
	let answer;
	let n = s.replace(/[^0-9]/g, "");
	if (n[0] === "0") answer = n.replace(/^0/, "");
	return answer;
}

let str = "g0en2T0s8eSoft";
console.log(solution(str));
//208출력

 

2) isNaN() 함수 사용

 -  isNaN()는 어떤 값이 NaN(not a number)인지 판별하여(숫자가 아닌지 판별) true/false로 반환한다.

function solution(s) {
	let answer = "";
	//isNaN()는 어떤 값이 NaN인지 판별한다(숫자가 아닌지 판별) true/false로 반환
	for (let x of s) {
		if (!isNaN(x)) answer += x;
	}
    //parseInt는 문자열을 숫자로 바꾼다. 자동으로 앞의 0을 떼준다
	return parseInt(answer);
}

let str = "g0en2T0s8eSoft";
console.log(solution(str));
//208 출력

 

728x90
반응형