
1. 문제 풀이 아이디어
- 정규식을 활용하여 문제를 해결할 수 있다.
2. 나의 정답 코드
using System.Text.RegularExpressions;
StreamReader sr = new(Console.OpenStandardInput());
StreamWriter sw = new(Console.OpenStandardOutput());
int n = int.Parse(sr.ReadLine());
for (int i = 0; i < n; i++)
{
string s = sr.ReadLine();
string p = @"^[ABCDEF]?A+F+C+[ABCDEF]?$";
if (Regex.IsMatch(s, p))
{
sw.WriteLine("Infected!");
}
else
{
sw.WriteLine("Good");
}
}
sr.Close();
sw.Close();
3. 정리
^[ABCDEF]?
를 사용해 문자열이{A, B, C, D, E, F}
중 0개 또는 1개로 시작하는지 확인한다.
A+F+C+
를 통해 A가 하나 이상, 그 뒤에 F가 하나 이상, 그리고 C가 하나 이상 포함되는 순서를 검증한다.
[ABCDEF]?$
는 문자열이{A, B, C, D, E, F}
중 0개 또는 1개로 끝나는지 확인한다.
- 정규식과 일치하는 경우 "Infected!"를 출력하고, 그렇지 않으면 "Good"을 출력한다.
Share article