사용한 것
- 정규식으로 풀이하기 위한
Pattern
, Matcher
풀이 방법
- 정규식 패턴을 만든다. -> "(100+1+|01)+"
matches()
로 일치 여부를 확인한다.
코드
public class Main {
private static final Pattern PATTERN = Pattern.compile("(100+1+|01)+");
private static int n;
private static String[] inputs;
public static void main(String[] args) throws IOException {
init();
print();
}
private static void init() throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
n = Integer.parseInt(br.readLine());
inputs = new String[n];
for (int i = 0; i < n; i++) {
inputs[i] = br.readLine();
}
br.close();
}
private static void print() {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < n; i++) {
String yN = isMatch(inputs[i]) ? "YES" : "NO";
sb.append(yN).append(lineSeparator());
}
System.out.println(sb);
}
private static boolean isMatch(String input) {
Matcher matcher = PATTERN.matcher(input);
return matcher.matches();
}
}