코딩테스트 연습 > 연습문제
정확성: 100.0
합계: 100.0 / 100.0
2025년 01월 03일 09:39:12
문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.
s
는 길이 1 이상, 길이 8 이하인 문자열입니다.s
는 영문 알파벳 대소문자 또는 0부터 9까지 숫자로 이루어져 있습니다.s | return |
---|---|
"a234" | false |
"1234" | true |
function solution(s) {
if(s.length === 4 || s.length === 6){
const regEx = new RegExp('^\\d+$');
return regEx.test(s);
} else return false;
}
성능 요약
메모리: 33.5 MB, 시간: 0.09 ms
RegExp
정규표현식
텍스트 처리에 막강한 친구.
const regEx = new RegExp('^\\d+$');
regEx.test(s);
오늘 사용한 '^\\\d+$'
분해하기.
^
: 정규표현식 시작
$
: 정규표현식 끝
\d
: 모든 숫자 (0~9) - 리터럴 방식
\\d
- 생성자 방식
+
: 바로 앞 패턴이 1회 이상 반복
/
: 리터럴 방식의 정규표현식 선언 /^\d+$/
리터럴로 정규표현식을 쓰면 ''
을 생략 가능하다.
// 리터럴 방식
let regex1 = /^\d+$/;
// 생성자 방식
let regex2 = new RegExp("^\\d+$")
regex2.test("1234") // true
regex2.test("12345") // true
regex2.test("123a") // false
// 동적으로 패턴 길이 지정하기
function makeDigitRegex(length) {
return new RegExp(`^\\d{${length}}$`);
}
const regex4 = makeDigitRegex(4); // 정확히 4자리 숫자
const regex6 = makeDigitRegex(6); // 정확히 6자리 숫자
regex4.test("1234") // true
regex4.test("12345") // false