에브리 저장소

[Codewars - 7 kyu] Regex validate PIN code 본문

자료구조 · 알고리즘

[Codewars - 7 kyu] Regex validate PIN code

eblee 2020. 1. 16. 17:29

문제 링크

 

이 문제는 올바른 PIN 코드 입력을 찾아내는 문제입니다. string으로 들어오는 입력을 받아 올바른 PIN 코드인지 아닌지를 boolean으로 반환하면 됩니다.

 

validatePIN("1234") === true
validatePIN("12345") === false
validatePIN("a234") === false

 

정규표현식을 써서 간단하게 해결할 수 있습니다.

정규표현식 문법(?) 중, \d는 digit를 의미하여 0~9 사이가 존재하는지 검사가 가능합니다.

그리고 중괄호를 사용하여, 몇 개 포함되어 있는지를 검사할 수 있습니다. 이 문제를 풀기 위해 다음과 같은 정규표현식을 만들 수 있겠습니다.

 

/^(\d{4}|\d{6})$/

 

^, $는 각각 시작과 끝을 의미하고 |는 또는(OR)의 의미를 가집니다.

 

정리하면 4개 혹은 6개 모두 숫자로 구성된 문자열을 검사하는 정규표현식이 됩니다.

자바스크립트에는 문자열이 정규표현식을 만족하는지 확인하여 boolean 값을 반환하는 test 메서드가 존재합니다. 이를 활용하여 정답을 반환할 수 있습니다.

 

풀이 코드는 더보기 버튼을 눌러주세요.

더보기
const validatePIN = pin => /^(\d{4}|\d{6})$/.test(pin);

 

아래는 정규표현식을 테스트하기 편리한 사이트입니다.

https://regexr.com/

불러오는 중입니다...

 

Comments