importcollectionsimportsysdefsolution(S:int,P:int,DNA:str,A:int,C:int,G:int,T:int)->int:# 만들 수 있는 비밀번호의 종류의 수
answer=0# 알파벳 개수 계산을 위한 딕셔너리
password=collections.defaultdict(int)foriinrange(P):password[DNA[i]]+=1ifpassword['A']>=Aandpassword['C']>=Candpassword['G']>=Gandpassword['T']>=T:answer+=1foriinrange(P,S):password[DNA[i]]+=1password[DNA[i-P]]-=1ifpassword['A']>=Aandpassword['C']>=Candpassword['G']>=Gandpassword['T']>=T:answer+=1returnanswerS,P=map(int,sys.stdin.readline().rstrip().split())DNA=sys.stdin.readline().rstrip()A,C,G,T=map(int,sys.stdin.readline().rstrip().split())print(solution(S,P,DNA,A,C,G,T))
Leave a comment