문제
두 개의 문자열 str1과 str2가 주어진다. 문자열 str1에 포함된 글자들이 str2에 몇 개씩 들어있는지 찾고, 그중 가장 많은 글자의 개수를 출력하는 프로그램을 만드시오.
예를 들어 str1 = “ABCA”, str2 = “ABABCA”인 경우, str1의 A가 str2에 3개 있으므로 가장 많은 글자가 되고 3을 출력한다.
파이썬의 경우 딕셔너리를 이용할 수 있다.
입력
첫 줄에 테스트 케이스 개수 T가 주어진다. 1≤T≤50
다음 줄부터 테스트 케이스 별로 길이가 N인 문자열 str1과 길이가 M인 str2가 각각 다른 줄에 주어진다.
5≤N≤100, 10≤M≤1000, N≤M
출력
각 줄마다 "#T" (T는 테스트 케이스 번호)를 출력한 뒤, 답을 출력한다.
내가 쓴 코드
T = int(input())
for t in range(T):
str1 = set(input())
str2 = input()
str_dict = {}
for s1 in str1:
cnt = 0
for s2 in str2:
if s1 == s2:
cnt += 1
str_dict[s1] = cnt
max_str = 0
for st in str_dict.values():
if st > max_str:
max_str = st
print(f'#{t+1} {max_str}')
출력 결과
#1 2
#2 1
#3 3
제출 결과
pass
728x90
반응형
'Algorithm > Python' 카테고리의 다른 글
| [BOJ #1152] 단어의 개수 (1) | 2024.02.06 |
|---|---|
| [SWEA #12393] 문자열 비교 (1) | 2024.02.05 |
| [BOJ #2167] 2차원 배열의 합 (2) | 2024.02.05 |
| [BOJ #28445] 알록달록 앵무새 (2) | 2024.02.05 |
| [BOJ #10815] 숫자 카드 (3) | 2024.02.04 |