728x90
import java.util.ArrayList;
import java.util.Arrays;
class Solution {
public int[] solution(int l, int r) {
ArrayList<Integer> resultList = new ArrayList<>();
for (int i = l; i <= r; i++) {
if (String.valueOf(i).matches("[05]+")) {
resultList.add(i);
}
}
if (resultList.isEmpty()) {
return new int[]{-1};
}
int[] resultArray = new int[resultList.size()];
for (int i = 0; i < resultList.size(); i++) {
resultArray[i] = resultList.get(i);
}
return resultArray;
}
}
String.valueOf(i).matches("[05]+") 조건식을 사용하여 정수를 필터링
String.valueOf(i) 는 정수 i를 문자열로 변환하여 반환하는 메서드이다.
이를 통해 정수를 문자열로 반환하고, 그 문자열에 대해 matches 함수를 호출하여 정규식 패턴과 비교한다.
정규식 해석
- [ ] : 대괄호 안에는 문자 클래스를 나타내는 문자들을 기술한다. 문자 클랫느는 해당 위치에 있는 문자 중 하나를 의미한다
- 05 : 0과 5 두 개의 문자를 의미
- + : 바로 앞에 있는 문자 또는 문자 클래스가 1번 이상 반복되는 것을 의미
matches 함수
문자열을 정규식과 비교하여 패턴이 일치하는지를 확인하는 메서드
boolean matches(String regex)
(* regex : 정규식 패턴을 나타내는 문자열 )
사용 예시
public class Main {
public static void main(String[] args) {
String str = "Hello, World!";
boolean isMatch = str.matches("Hello, World!");
System.out.println(isMatch); // Output: true
String pattern = "[a-zA-Z]+";
String word = "Hello";
boolean isWordMatch = word.matches(pattern);
System.out.println(isWordMatch); // Output: true
}
}
정규식 패턴 '[a-zA-Z]' 는 영문자로만 이루어진 문자열을 의미한다.
728x90
'코테연습 > 프로그래머스' 카테고리의 다른 글
코딩 기초 트레이닝 > 콜라츠 수열 만들기 Java (0) | 2023.07.27 |
---|---|
코딩 기초 트레이닝 > 배열 만들기 4 - Java (0) | 2023.07.26 |
코딩 기초 트레이닝 > 카운트 업 -Java (0) | 2023.07.25 |
코딩 기초 트레이닝 > 수열과 구간 쿼리 4 - Java (0) | 2023.07.25 |
코딩 기초 트레이닝 > 수열과 구간 쿼리 3 - Java (0) | 2023.07.24 |