반응형
문제 출처: https://www.acmicpc.net/problem/1013
1. 문제 접근방식
- 주어진 패턴에 맞는지 확인하는 것이 가장 핵심으로 파악하고 자바에서 지원해주는 메서드를 찾아보았다. 역시 Matcher클래스에 matches() 메서드가 있었다.
Matcher 클래스 주요 메서드
- matches(): 대상 문자열과 패턴이 일치할 경우 true
- find(): 대상 문자열과 패턴이 일치할 경우 true를 반환하고 위치로 이동
- start(): 매칭되는 문자열 시작위치 반환
- end(): 매칭되는 문자열 끝 다음 문자위치 반환
- group(): 매칭된 부분 반환
2. 내가 푼 코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class boj1013 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int T = Integer.parseInt(br.readLine());
for (int i = 0; i < T; i++) {
String str = br.readLine().trim();
String pattern = "(100+1+|01)+";
if (str.matches(pattern)) {
System.out.println("YES");
} else {
System.out.println("NO");
}
}
}
}
3. 결과 및 느낀점
- 자바의 새로운 클래스와 메서드를 알아갈수있는 좋은 문제였다!
반응형
'개인 공부 > Algorithm' 카테고리의 다른 글
[Baekjoon/백준] 2671 JAVA (0) | 2021.08.05 |
---|---|
[Baekjoon/백준] 12904 JAVA (0) | 2021.08.04 |
[Baekjoon/백준] 1120 JAVA (0) | 2021.08.02 |
[Baekjoon/백준] 11659 JAVA (0) | 2021.08.01 |
[Baekjoon/백준] 9095 JAVA (0) | 2021.07.31 |