728x90
▶정규 표현식과 match() 함수 & ▶every() 사용한 간단한 기초문제가 있어서 정리해보고자 합니다.
문제설명
정수 l과 r이 주어졌을 때, l 이상 r이하의 정수 중에서 숫자 "0"과 "5"로만 이루어진 모든 정수를 오름차순으로 저장한 배열을 return 하는 solution 함수를 완성해 주세요.
만약 그러한 정수가 없다면, -1이 담긴 배열을 return 합니다.
제한사항
- 1 ≤ l ≤ r ≤ 1,000,000
입출력 예 & 설명
- 입출력 예 #1
- 5 이상 555 이하의 0과 5로만 이루어진 정수는 작은 수부터 5, 50, 55, 500, 505, 550, 555가 있습니다. 따라서 [5, 50, 55, 500, 505, 550, 555]를 return 합니다.
- 입출력 예 #2
- 10 이상 20 이하이면서 0과 5로만 이루어진 정수는 없습니다. 따라서 [-1]을 return 합니다.
나의 풀이
먼저 기본 for문을 사용하여 l에서부터 r까지의 정수에 접근합니다.
그리고 i를 문자열로 변환해주고, 전개 연산자(...)를 사용하여 문자열 i를 전개해 줍니다.
그리고 every() 함수를 사용하여 l ~ r까지의 문자를 점검해 줍니다.
문자 i가 5와 0이 포함되어 있다면 every()의 반환값은 true이기 때문에 해당 문자 i를 answer 배열에 push 해줍니다.
그리고 0과 5로만 이루어진 i 정수가 없다면 [-1] 배열을 리턴해주고, 아니라면 그대로 answer을 리턴해줍니다.
다른 풀이
전체적인 구조는 "나의 풀이"와 비슷하지만 다른 점은 정규식과 match() 메서드를 사용했다는 것입니다.
정수 i를 이번에는 toString()을 사용하여 문자로 변환해 주고, match() 메서드를 사용하여 인자에 정규식을 넣어 해당 정규식에 포함되는 문자 i가 있다면 해당 문자를 answer 배열에 넣어줍니다.
/^[05]+$/ : 문자 05로 구성된 문자열
- /박/ -> '박'을 '하나'만 찾는다.
- [05] -> 괄호 안의 문자들 중 하나
- ^ -> 바로 다음으로 오는 문자 or 패턴으로 시작되는지 확인
- + -> 1개 이상
문자 '0'과 '5'로 구성된 문자열을 찾아 해당하는 정수 i를 answer에 넣어줍니다.
'Coding Test > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 주사위 게임 3 (JavaScript) (0) | 2024.02.24 |
---|---|
[프로그래머스] 배열 조각하기 (JavaScript) (0) | 2024.02.22 |
[프로그래머스] 전국 대회 선발 고사 (JavaScript) (0) | 2024.02.20 |
[프로그래머스] 그림 확대 (JavaScript) (0) | 2024.02.19 |
[프로그래머스] 무작위로 K개의 수 뽑기 (JavaScript) (1) | 2024.02.18 |