9342번: 염색체백준/문제2024. 4. 16. 15:26
Table of Contents
문제 출처 : https://www.acmicpc.net/problem/9342
언어 : Kotlin
문제 설명 :
상근이는 생명과학 연구소에서 염색체가 특정한 패턴인지를 확인하는 일을 하고 있다. 염색체는 알파벳 대문자 (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"을 출력한다.
제한 사항 :
- 시간 제한 : 2초
- 메모리 제한 : 64MB
입출력 예 :
입력 | 출력 |
15 AFC AAFC AAAFFCC AAFCC BAFC QWEDFGHJMNB DFAFCB ABCDEFC DADC SDFGHJKLQWERTYU AAAAAAAAAAAAABBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCDDDDDDDDDDDEEEEEEEEEEEEEEEFFFFFFFFC AAAFFFFFBBBBCCCAAAFFFF ABCDEFAAAFFFCCCABCDEF AFCP AAFFCPP |
Infected! Infected! Infected! Infected! Infected! Good Good Good Good Good Good Good Good Good Good |
풀이 :
import java.io.BufferedReader
import java.io.BufferedWriter
import java.io.InputStreamReader
import java.io.OutputStreamWriter
fun main() = with(BufferedReader(InputStreamReader(System.`in`))) {
val bw = BufferedWriter(OutputStreamWriter(System.out))
val t = readLine().toInt()
repeat(t) {
bw.write(if (readLine().matches("[A-F]?A+F+C+[A-F]?$".toRegex())) "Infected!" else "Good")
if (it < t) bw.append("\n")
}
bw.flush()
bw.close()
}
'백준 > 문제' 카테고리의 다른 글
1340번: 연도 진행바 (0) | 2024.04.17 |
---|---|
12933번: 오리 (0) | 2024.04.16 |
5357번: Dedupe (0) | 2024.04.16 |
23303번: 이 문제는 D2 입니다. (0) | 2024.04.15 |
15947번: 아기 석환 뚜루루 뚜루 (0) | 2024.04.15 |
@스몰스테핑 :: 작은 발걸음
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!