반응형
코드
n = int(input())
pattern = input().split("*")
length = len(pattern[0]) + len(pattern[1])
for _ in range(n):
file = input()
if length > len(file):
print("NE")
else:
if pattern[0] == file[:len(pattern[0])] and pattern[1] == file[-len(pattern[1]):]:
print("DA")
else:
print("NE")
설명
처음에 패턴이 a*b와 같이 알파벳 하나씩만 나오는 줄 알았는데 abc*def 와 같이 여러개가 나오는 경우도 있다는 걸 깨달았다..
만약 a*a가 패턴이고 a가 주어지면 a가 하나밖에 없기 때문에 중복이 될 수 없으므로 NE가 떠야 한다.
따라서 패턴의 총 길이가 파일 이름보다 클 경우 패턴이 일치할 수 없다.
파일 이름이 패턴의 길이보다 길 경우, 슬라이싱을 이용해 앞부분과 뒷부분이 패턴과 일치하는지 확인했다.
file[-a : ]를 해주면 뒤에 a번째 문자부터 끝까지 가져온다.
반응형
'알고리즘 > 완전탐색' 카테고리의 다른 글
[프로그래머스][Python] 피로도 (0) | 2023.02.15 |
---|---|
[백준][Python] 14888번 연산자 끼워넣기 (0) | 2022.11.28 |
[백준][Python] 3085번 사탕 게임 (0) | 2022.07.28 |
[백준][Python] 1487번 물건 팔기 (0) | 2022.07.27 |
[백준][Python] 16951번 블록 놀이 (0) | 2022.07.27 |
댓글