알고리즘/[ Baekjoon ]

[ BOJ ][JAVA][9342] 염색체

kim.svadoz 2021. 4. 26. 21:12
반응형

www.acmicpc.net/problem/9342

 

9342번: 염색체

상근이는 생명과학 연구소에서 염색체가 특정한 패턴인지를 확인하는 일을 하고 있다. 염색체는 알파벳 대문자 (A, B, C, ..., Z)로만 이루어진 문자열이다. 상근이는 각 염색체가 다음과 같은 규칙

www.acmicpc.net

시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
2 초 64 MB 314 216 185 71.154%

문제

상근이는 생명과학 연구소에서 염색체가 특정한 패턴인지를 확인하는 일을 하고 있다. 염색체는 알파벳 대문자 (A, B, C, ..., Z)로만 이루어진 문자열이다. 상근이는 각 염색체가 다음과 같은 규칙을 만족하는지 검사해야 한다.

  • 문자열은 {A, B, C, D, E, F} 중 0개 또는 1개로 시작해야 한다.
  • 그 다음에는 A가 하나 또는 그 이상 있어야 한다.
  • 그 다음에는 F가 하나 또는 그 이상 있어야 한다.
  • 그 다음에는 C가 하나 또는 그 이상 있어야 한다.
  • 그 다음에는 {A, B, C, D, E, F} 중 0개 또는 1개가 있으며, 더 이상의 문자는 없어야 한다.

문자열이 주어졌을 때, 위의 규칙을 만족하는지 구하는 프로그램을 작성하시오.

입력

첫째 줄에 테스트 케이스의 개수 T ≤ 20 이 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 최대 200개의 알파벳 대문자로 이루어진 문자열이 주어진다.

출력

각 테스트 케이스에 대해서, 문제의 규칙을 지키는 문자열인 경우에는 "Infected!"를, 아닌 경우에는 "Good"을 출력한다.

예제 입력 1

15
AFC
AAFC
AAAFFCC
AAFCC
BAFC
QWEDFGHJMNB
DFAFCB
ABCDEFC
DADC
SDFGHJKLQWERTYU
AAAAAAAAAAAAABBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCDDDDDDDDDDDEEEEEEEEEEEEEEEFFFFFFFFC
AAAFFFFFBBBBCCCAAAFFFF
ABCDEFAAAFFFCCCABCDEF
AFCP
AAFFCPP

예제 출력 1

Infected!
Infected!
Infected!
Infected!
Infected!
Good
Good
Good
Good
Good
Good
Good
Good
Good
Good

코드

/*
정규표현식!!!
*/
import java.io.*;

public class p9342 {
    static int n;
    public static void main(String[] args) throws Exception{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int N = Integer.parseInt(br.readLine());

        String regex = "^[A-F]?A+F+C+[A-F]?$";

        for(int i=0;i<N;i++) {
            String word = br.readLine();
            if (word.matches(regex)) {
                System.out.println("Infected!");
            }else {
                System.out.println("Good");
            }
        }
    }
}
반응형

'알고리즘 > [ Baekjoon ]' 카테고리의 다른 글

[ BOJ ][JAVA][1202] 보석 도둑  (0) 2021.04.27
[ BOJ ][JAVA][9465] 스티커  (0) 2021.04.27
[ BOJ ][JAVA][9095] 1, 2, 3 더하기  (0) 2021.04.26
[ BOJ ][JAVA][9079] 동전 게임  (0) 2021.04.26
[ BOJ ][JAVA][9046] 복호화  (0) 2021.04.26