티끌모아 태산

[백 준/구현] 9996: 한국이 그리울 땐 서버에 접속하지 본문

백준 문제/문자열,누적합,구현

[백 준/구현] 9996: 한국이 그리울 땐 서버에 접속하지

goldpig 2024. 2. 15. 16:17
728x90

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

 

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

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

www.acmicpc.net

핵심 아이디어

  • 별표를 기준으로 별표 앞에 오는 문자열로 시작하고 별표 뒤에 오는 문자열로 끝나야 함.
  • 만약 "a*a"를 패턴으로 할 때,  "a"로 시작해서 "a"로 끝나지만 "a"가 두개 존재하고 양 끝에 존재해야 한다는 의미.
  • 그리고 입력받은 s의 길이가 pat 보다 작으면 안된다. 즉, pat = abc*abc, s = abc 이렇게 len(s) < len(prefix) + len(subfix) 하면 안된다.

코드

import sys # 입력을 빠르게 받기 위해
input = sys.stdin.readline

n = int(input())
pat = input()
prefix, subfix = pat.split('*')

for _ in range(n):
	s = input()
	if len(s) < len(prefix) + len(subfix):
		print('NE')
	elif s[:len(prefix)] == prefix and s[-len(subfix):] == subfix:
		print('DA')
	else:
		print('NE')

 

728x90