대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를 리턴합니다. 단, 개수를 비교할 때 대문자와 소문자는 구별하지 않습니다.
function solution(s){
var answer = true;
const countP = s.match(/[p]/gi) == null ? 0 : s.match(/[p]/gi).length;
const countY = s.match(/[y]/gi) == null ? 0 : s.match(/[y]/gi).length;
answer = countP == countY ? true : false;
//answer = countP === countY ? true : false;
return answer;
}
문자열 s에서 p를 찾아주기위해 삼항연산자 작성
정규표현식을 활용하여 match메소드로 문자 'p' 와 'y'를 검색
<aside> ✅ 이때 정규표현식에서 gi란? g : 발생할 모든 pattern에 대한 전역 검색 i : 대/소문자 구분 안함
정규표현식 참조 (10.25) 신규아이디추천 (11.08) 문자열 다루기 기본
</aside>
이렇게 'p' 와 'y'의 개수가 0인지 아닌지를 판별하여 0일때 항상 true를 리턴하기 위해서 각각의 'p', 'y' 의 개수가 0일 때 = null → true!
각각의 'p', 'y' 의 개수가 0이 아닐 때 → false!
다시 삼항연산자로 'p' 와 'y' 의 개수가 같을 때 true 아닐때 false를 출력하도록 조건작성
return answer 출력
<aside> ✅ String.match() 메소드 : 문자열이 정규식과 매치되는 부분을 검색해 줌
</aside>
참고링크