EZ 이런 컨셉을 쉽게 느끼나? 걍 이 문제가 쉬운 듯 str1에서 set는 중복 연산 하기 싫어서 썼고 str2 처리할 때는 dict이 빠르대서 그렇게 풀어 봄

KMP 관련으로도 엮을 수 있을 것 같은데 KMP pi 테이블 나올 때도 앞과 뒤 비교해서 몇 번 나오고 반복되는지 저장했던 것 같은데


T = int(input())
# 여러개의 테스트 케이스가 주어지므로, 각각을 처리합니다.
for test_case in range(1, T + 1):
 
    str1 = set(input())
    str2 = input()
    t_dict = {} # {철자:나온 횟수}
    answer = 0
    for index in range (len(str2)):
        if str2[index] not in t_dict:
            t_dict[str2[index]] = 1
        else:
            t_dict[str2[index]] += 1
    for letter in str1: 
        if answer < t_dict[letter]:
            answer = t_dict[letter]
        else:
            pass
    print (f'#{test_case} {answer}')
 
  • **dict.get(): ** if-else로 존재 여부를 확인할 필요 없이 한 줄로 끝낼 수 있다.

    # 기존 4줄을 1줄로
    t_dict[char] = t_dict.get(char, 0) + 1
  • max(): for letter in str1 루프도 한 줄로 줄일 수 있다.

    answer = max(t_dict.get(letter, 0) for letter in str1)