맛있는물회

[맛있는물회] <SWEA알고리즘> 4864번 "문자열 비교" 본문

IT/알고리즘

[맛있는물회] <SWEA알고리즘> 4864번 "문자열 비교"

맛있는물회 2020. 4. 2. 08:28

문제 조건


두 개의 문자열 str1과 str2가 주어진다. 문자열 str2 안에 str1과 일치하는 부분이 있는지 찾는 프로그램을 만드시오.

예를 들어 두 개의 문자열이 다음과 같이 주어질 때, 첫 문자열이 두번째에 존재하면 1, 존재하지 않으면 0을 출력한다.

ABC

ZZZZZABCZZZZZ

두번째 문자열에 첫번째 문자열과 일치하는 부분이 있으므로 1을 출력.
 

ABC

ZZZZAZBCZZZZZ

문자열이 일치하지 않으므로 0을 출력.

 

Input


 

첫 줄에 테스트 케이스 개수 T가 주어진다.  (1≤T≤50)

다음 줄부터 테스트 케이스 별로 길이가 N인 문자열 str1과 길이가 M인 str2가 각각 다른 줄에 주어집니다. (5≤N≤100, 10≤M≤1000, N≤M)

Output


각 줄마다 "#T" (T는 테스트 케이스 번호)를 출력한 뒤, 답을 출력한다.

 

생각한 아이디어


아주 간단한 패턴 매칭 문제이다.

파이썬에서는 

if A in B 라는 식으로 아주 간단하게 알아낼 수 있다.

파이썬은 문자열을 처리하는데 있어서 아주 아주 효율적인 언어인듯하다.

 

소스코드


T = int(input())
for TC in range(1, T+1):
    str1 = str(input())
    str2 = str(input())

    if str1 in str2:
        print("#%d %d" %(TC,1))
    else :
        print("#%d %d" %(TC,0))

 

*파이썬 문법 정리

- 파이썬에서는 Match 알고리즘을 str1 in str2를 사용하여 아주 간단하게 사용가능하다.

- find() 함수를 사용한다면 match 여부는 물론이고 match되는 Index까지 알아낼 수 있다.

Comments