반응형
이번 문제는 간단한 정규식 패턴 매칭 문제였습니다.
한국이 그리울 땐 서버에 접속하지[9996]📋 문제 설명
첫째 줄에 파일의 개수 N이 주어진다. (1 ≤ N ≤ 100)
둘째 줄에는 패턴이 주어진다. 패턴은 알파벳 소문자와 별표(*) 한 개로 이루어져 있으며, 별표는 문자열의 시작과 끝에 있지 않다.
다음 N개의 줄에는 각 파일 이름이 주어지고, 패턴과 일치하는지 판별해야 한다.
별표(*)는 임의의 문자열(길이 0 이상)을 의미하며, 정규식의 .*
와 동일하다.
패턴과 일치하면 "DA", 일치하지 않으면 "NE"를 출력한다.
참고: "DA"는 YES, "NE"는 NO를 의미한다.
🧪 입력 예시
3
a*d
abcd
anestonestod
facebook
✅ 출력 예시
DA
DA
NE
💻 풀이 코드
import sys
import re
n = int(input())
start, end = input().split("*")
lines = sys.stdin.read().splitlines()
pattern = rf"^{start}.*{end}$"
for x in range(n):
if re.match(pattern, lines[x]):
print("DA")
else:
print("NE")
💻 정규표현식 re
import re
start_pattern = r"^abc" # 'abc'로 시작
end_pattern = r"ddc$" # 'ddc'로 끝남
both = r"^abc.*ddc$" # 'abc'로 시작하고 'ddc'로 끝남 (중간엔 뭐든 올 수 있음)
.* 는 아무 문자든 0개 이상 이라는 뜻이고 위에서는 abc,ddc 사이에 어떤내용이든 가능하다로 표현됩니다
반응형
'Python > algorithm' 카테고리의 다른 글
백준 병든 나이트 (0) | 2025.04.13 |
---|---|
측정할 수 없는 최소 무게 (0) | 2025.04.10 |
쇠막대기 자르기 (0) | 2025.04.08 |
TIL - 2025.03.28 (0) | 2025.04.07 |
슬라이딩 윈도우 (0) | 2025.04.04 |