https://www.acmicpc.net/problem/9996

 

9996번: 한국이 그리울 땐 서버에 접속하지

총 N개의 줄에 걸쳐서, 입력으로 주어진 i번째 파일 이름이 패턴과 일치하면 "DA", 일치하지 않으면 "NE"를 출력한다. 참고로, "DA"는 크로아티어어로 "YES"를, "NE"는 "NO"를 의미한다.

www.acmicpc.net

 

 

 

문제 풀이

- 패턴은 '*'을 기준으로 앞에와야 하는 문자열 + * + 뒤에와야 하는 문자열을 입력받는다.

- 앞에와야 하는 문자열은 ^으로, 뒤에와야 하는 문자열은 $으로 패턴을 만든다.

- 예시) a*d 일때 ad도 매치된다. 

import re

tc = int(input())
pattern = list(map(str, input().split('*')))
str_pattern = '^' + pattern[0] + '.*' + pattern[1] + '$'
# p = re.compile("^{0}.*{1}$".format(pattern[0], pattern[1]))
p = re.compile(str_pattern)

for _ in range(tc):
    word = input()
    m = p.search(word)
    if m:
        print("DA")
    else:
        print("NE")

+ Recent posts