문제
알고리즘
- "*" 기준으로 왼쪽 문자열과 오른쪽 문자열로 나눈다.
- 반복문을 통해 파일의 이름을 확인한다.
- 파일 이름의 길이가 왼쪽, 오른쪽 문자열의 길이보다 작으면 패턴이 일치할 수 없다.
- 왼쪽 문자열과 파일의 왼쪽 문자열만큼 자른 문자열이 같고, 오른쪽 문자열과 파일의 오른쪽 문자열만큼 자른 문자열이 같으면 패턴일 일치한 것이다.
코드
import sys
n = int(sys.stdin.readline())
pattern = list(map(str, sys.stdin.readline().split("*"))) # * 기준으로 왼쪽 문자열과 오른쪽 문자열로 나눈다.
left = pattern[0].strip() # 왼쪽 문자열
right = pattern[1].rstrip("\n") # 오른쪽 문자열
# 반복문을 통해 파일의 이름을 확인
for _ in range(n):
file = list(map(str, sys.stdin.readline().rstrip("\n")))
# 파일 이름의 길이가 왼쪽, 오른쪽 문자열의 길이보다 작으면 패턴이 일치 할 수 없다.
if len(file) >= len(left) + len(right):
# 왼쪽 문자열과 파일의 왼쪽 문자열만큼 자른 문자열이 같고, 오른쪽 문자열과 파일의 오른쪽 문자열만큼 자른 문자열이 같을 경우 패턴일 일치하는 것
if left == "".join(file[:len(left)]) and right == "".join(file[len(file) - len(right):]):
print("DA")
else:
print("NE")
else:
print("NE")
github
'CodingTest > Baekjoon' 카테고리의 다른 글
[baekjoon] 백준 2671번(파이썬): 잠수함식별 (0) | 2022.01.11 |
---|---|
[baekjoon] 백준 1013번(파이썬): Contact (0) | 2022.01.10 |
[baekjoon] 백준 1755번(파이썬): 숫자놀이 (0) | 2022.01.08 |
[baekjoon] 백준 1969번(파이썬): DNA (0) | 2022.01.07 |
[baekjoon] 백준 1769번(파이썬): 3의 배수 (0) | 2022.01.06 |