정수 l과 r이 주어졌을 때, l 이상 r이하의 정수 중에서 숫자 "0"과 "5"로만 이루어진 모든 정수를 오름차순으로 저장한 배열을 return 하는 solution 함수를 완성해 주세요.
만약 그러한 정수가 없다면, -1이 담긴 배열을 return 합니다.
function solution(l, r) {
const reg = /^[05]+$/
let result = []
for(let i=l;i<=r;i++) {
if(reg.test(i.toString())) {
result.push(i)
}
}
return result.length ? result : [-1]
}
이번 포스팅의 하이라이트는 정규표현식이다.
정규표현식은 문자열의 패턴을 매칭하는데 매우 탁월한 도구이다.
정규표현식을 잘 사용한다면, 효율적이게 문제를 해결할수있다.
하지만 정규표현식의 문법을 잘 모르면 가독성이 떨어진다는 단점이 있다.
0과 5로만 이루어져있는 숫자들을 찾아내야하는 문제였다.
처음에 내가 작성한 코드는
const reg = /[05]/
였는데, 이렇게 하게 되면 5, 10, 15 , ...
의 값들이 출력되었다.
정규표현식을 사용해본적은 있지만, 문법을 자세히 몰랐다.
이럴땐 chat gpt를 적극 이용하면 절반은 해결가능이다.