
🏷️문제
머쓱이는 태어난 지 6개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음을 최대 한 번씩 사용해 조합한(이어 붙인) 발음밖에 하지 못합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요.
🔎풀이
#문자열처리 #정규표현식
function solution(babbling) {
var answer = 0;
var regex = /^(aya|ye|woo|ma)+$/
babbling.forEach((word)=>{if(regex.test(word)){answer++}})
return answer;
}
- 시간 복잡도: O(N * L)
- N: babbling 길이
- L: 단어 길이
- 정규표현식: 선형 시간 복잡도
📌키워드
정규표현식(ReqEx)
메서드
- ''.match(/정규표현식/g): 매칭 항목 배열 반환
- ''.replace(/정규표현식/,'대채 문자열'): 조건 문지 대체
- 정규표현식.test(''): 매칭되면 true, 아니면 false
플래그
- g :전역 검색
- i :대소문자 구분X
- m :여러줄
옵션
- \.*?+[{|()^$ 앞 백슬래시 사용 필수
- . : 모든 문자열
- * :0개 이상의 문자 시작
- & :문장
- + :한번 이상 반
- \d :숫자
- \D :숫자 제외
- \s :공백
- \S :공백 제외
패턴
- | :or
- () :그룹 지정
- [] : (||)과 동일
- x{n} : x문자 b번 반
- 문자? : 문자 있거나 없거나
- ^문자열 :문장 시작
- 문자열$ :문장 끝
- [^문자] :특정 문자 제외
| 숫자 | /[0-9]/g |
| 영어 알파벳 | a-zA-Z |
| 한글 문 | ㄱ-ㅎ가-힣 |
| 특정 문자 | /[찾을문자]/g |
| 단어 | /찾을단어/g |
| 단어 제외 | \b(?!\b제외단어\b)\w+\b |
| 이메일 | /^[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*\.[a-zA-Z]{2,3}$/i |
| 전화번호 | /^\d{3}-\d{3,4}-\d{4}$/ |
| 핸드폰 번호 | /^01([0|1|6|7|8|9]?)-?([0-9]{3,4})-?([0-9]{4})$/ |
| URL | ^(https?):\/\/([^:\/\s]+)(:([^\/]*))?((\/[^\s/\/]+)*)?\/?([^#\s\?]*)(\?([^#\s]*))?(#(\w*))?$ |
참고)
'알고리즘 > JavaScript' 카테고리의 다른 글
| [프로그래머스/JS] 분수의 덧셈 (0) | 2024.08.27 |
|---|---|
| [JS] 몫 / 나머지 구하는 법 (feat. 정수) (0) | 2024.08.27 |
| [프로그래머스/JS] 평행 (0) | 2024.08.27 |
| [코테의정석/JS] 변수와 자료형 (0) | 2024.06.26 |