728x90

[문제 링크]

 

1013번: Contact

입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트 케이스에 대해 전파를 표현하는, { 0, 1 }만으로 이루어진 문자열이 공백 없이 주어진다. 문자열 길이는 (1 ≤

www.acmicpc.net

import java.util.*;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);

		String Vega = "(100+1+|01)+";
		int T = sc.nextInt();

		for(int i = 0; i < T; i++) {
			String N = sc.next();

			if(N.matches(Vega)) {
				System.out.println("YES");
			} else {
				System.out.println("NO");
			}
		}
	}
}

정규표현식을  접하기 전에 문제를 봤을 때 집합의 규칙을 어떻게 코드로 작성해야 할지 막막했다. 

혼자 끙끙 거리다 결국 개발자의 영원한 친구, 구글링 도움을 받기로 결정하고 구글링을 한 결과, 거의 모든 분들이 정규표현식을 사용했다. (이런 신세계를...)

그렇다. 나는 이 문제를 통해 정규표현식을 처음 접했다‼

 

정규표현식의 Matcher 클래스를 사용하여 '(100+1+|01)+'을 패턴으로 주고, 패턴과 일치 또는 불일치를 출력하도록 했다.

이때, 패턴은 string 타입이므로 입력받는 수 N 또한, string 타입으로 받아야 한다.

 

 

 

자세한 정규표현식의 설명은 JAVA 카테고리를 참고하도록 하자.

728x90

'💻코딩 > 💡Baekjoon' 카테고리의 다른 글

[백준] 1016 제곱 ㄴㄴ 수  (0) 2023.05.02
[백준] 1014 컨닝  (0) 2023.02.04
[백준] 1012 유기농 배추  (2) 2023.01.13
[백준] 1010 다리 놓기  (0) 2023.01.11
[백준] 1009 분산처리  (0) 2023.01.10

+ Recent posts