[SWEA] 4864_문자열 비교

김태민·2021년 8월 21일
2

알고리즘

목록 보기
7/77

Mingssssss

1. 문제

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

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

ABC

ZZZZZABCZZZZZ

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

ABC

ZZZZAZBCZZZZZ

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

[입력]

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

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

[출력]

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

2. 코드

import sys
sys.stdin = open('input.txt')

T = int(input())
for tc in range(T):
    str1 = list(map(str, (input())))
    str2 = list(map(str, (input())))

    str_list = []
    result = 0
    cnt = 0

    while cnt < (len(str2)-1):
        for chr in str2[cnt: len(str1) + cnt]:
            str_list.append(chr)
            if str_list == str1:
                result = 1
        cnt += 1
        str_list = []

    print('#{0} {1}'.format(tc+1, result))

3. 리뷰

개념 자체는 쉬운 편이다. 얼마나 탐색해야 할지 범위를 정해주는 것이 중요한 것 같다.

profile
어제보다 성장하는 개발자

0개의 댓글