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 |