문제
한 개의 문자열을 입력받고, 특정 문자를 입력받아 해당 특정문자가 입력받은 문자열에 몇 개 존재하는지 알아내는 프로그램을 작성하세요. 문자열의 길이는 100을 넘지 않습니다.
내가 푼 방법
<html>
<head>
<meta charset="UTF-8" />
<title>출력결과</title>
</head>
<body>
<script>
function solution(s, t) {
const regex = new RegExp(`${t}`, "g");
console.log(regex);
let answer = s.match(regex).filter((item) => item !== "").length;
return answer;
}
let str = "COMPUTERPROGRAMMING";
console.log(solution(str, "R"));
</script>
</body>
</html>
✅ match 함수
match 함수를 사용하면 특정 문자를 추출하여 배열로 반환한다.
특정 문자가 없을 경우 빈 배열을 반환하는데 이럴 경우 filter 함수를 사용하여 빈 배열을 제거해야 0을 얻을 수 있다.
filter 함수를 사용하지 않을경우 특정 문자를 찾지 못하면 빈배열 1개를 반환하기 때문에 1을 반환한다.
다른 풀이
<html>
<head>
<meta charset="UTF-8" />
<title>출력결과</title>
</head>
<body>
<script>
function solution(s, t) {
let answer = s.split(t).length;
return answer - 1;
}
let str = "COMPUTERPROGRAMMING";
console.log(solution(str, "R"));
</script>
</body>
</html>
'Javascript 코테준비 > 섹션1' 카테고리의 다른 글
12. 대문자로 통일 (0) | 2022.09.09 |
---|---|
11. 대문자 찾기 (0) | 2022.09.09 |
9. A를 #으로 (0) | 2022.09.04 |
7. 10부제 (0) | 2022.09.03 |
6. 홀수 (0) | 2022.09.03 |