코딩테스트/SWExpertAcademy

글자수 Python(SW Expert Academy)

멍토 2020. 3. 4.

난이도 : D2

문제번호 : 4865

※ 저의 풀이가 무조건적인 정답은 아닙니다.

다른 코드가 좀더 효율적이고 좋을 수 있습니다.

다른사람들의 풀이는 언제나 참고만 하시기 바랍니다.

문제 주소 및 출처입니다.

https://swexpertacademy.com/main/learn/course/subjectDetail.do?courseId=AVuPDN86AAXw5UW6&subjectId=AWOVGOEKqeoDFAWg#

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com


목차

1. 문제 설명

2. 문제 해석

3. 소스 코드


1. 문제 설명

두 개의 문자열 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는 테스트 케이스 번호)를 출력한 뒤, 답을 출력한다.

예시

입력 출력

3
XYPV
EOGGXYPVSY
STJJ
HOFSTJPVPP
ZYJZXZTIBSDG
TTXGZYJZXZTIBSDGWQLW

#1 2
#2 1
#3 3

2. 문제풀이

파이썬 3일차 연습문제 중 하나인 문자열 비교 문제이다.

위에있는 글자가 각각 몇개있는지 체크해야하는 문제이다.

두번째 문자열을 순회하면서

첫번째 문제열에 포함이 되어있다면 카운팅하는 형식으로 문제를 해결하였다.


3. 소스코드

1
2
3
4
5
6
7
8
9
10
11
#D2 4865 글자수세기
= int(input())
for t in range(1, T+1):
    lst = []
    for i in range(2):
        lst.append(list(input()))
    dic_t = {}
    for s in lst[1]:
        if s in lst[0]:
            dic_t[s] = dic_t.get(s, 0+ 1
    print("#{} {}".format(t, max(list(dic_t.values()))))

댓글

💲 광고입니다.