울음참고 개발공부
article thumbnail
728x90

 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

 


 

 

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
profile

울음참고 개발공부

@메각이

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!