풀이
- 초기 생각한 방법은
- 초기 값 확인 이후 사이 값에 대한 조건을 추가해 확인했지만
- 역시 고려해야할 조건들이 생각보다 더 있어서
- 정규식을 생각 후 풀었는데
- 보통 GPT한테 이렇게 정규식 작성해줘로만 했지
- 직접 작성한적은 별로 없었어서 하나씩 적용하며 해봤는데
- 진짜 유용한 것 같다!
- 우선 import re를 사용해 정규표현식을 사용할 수 있다.
- 이후 pattern을 확인해보자면
- [A-F]?
- [A-F]는 "A와 F 중" 을 의미하며
- ? 는 있거나 없거나를 의미
- A+
- A가 최소 하나 이상 반복을 의미
- 이후 F와 C 를 확인 할 수 있음.
- $
- 문자의 종료를 의미하여
- 이후 뒤에는 아무것도 없다를 선언해야
- AFCP <-- 해당 조건과 같은 경우를 해결할 수 있다.
- [A-F]?
- 그리고 정규 표현식은
- re.match(정규 표현식 패턴, 대상) 으로 비교할 수 있다.
import sys
import re
input = sys.stdin.readline
for _ in range(int(input())):
chromosome = input().rstrip('\n')
pattern = "[A-F]?A+F+C+[A-F]?$"
if re.match(pattern,chromosome): print('Infected!')
else: print('Good')
'알고리즘' 카테고리의 다른 글
[백준, 파이썬, 2776번] 암기왕 (0) | 2023.09.16 |
---|---|
[백준, 파이썬, 10971번] 외판원 순회 2 (0) | 2023.09.15 |
[백준, 파이썬, 1912번] 연속합 (0) | 2023.09.14 |
[백준, 파이썬, 15886번] 내 선물을 받아줘 2 (0) | 2023.09.14 |
[백준, 파이썬, 15650번] N과 M (2) (0) | 2023.09.13 |