[백준 / 골드5] 1013 Contact (Java)

wannabeking·2022년 12월 4일
0

코딩테스트

목록 보기
133/155

문제 보기



사용한 것

  • 정규식으로 풀이하기 위한 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();
    }
}


profile
내일은 개발왕 😎

0개의 댓글