티스토리 뷰

반응형

문제의 저작권은 SW Expert Academy에 있습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
TC= int(input())
for tc in range(1, TC+1):
    N = [x for x in input()]
    M = [x for x in input()]
    n_N = len(N)
    n_M = len(M)
    res = 0
    for i in range(n_M-n_N+1):
        if N[0== M[i]:
            t= 0
            while t < n_N:
                if N[t] != M[i+t]:
                    break
                if t == (n_N-1):
                    res = 1
                t+=1
    print("#%d %d" % (tc, res))
 
cs

= [x for x in input()]

붙어있는 문자열을 하나씩 리스트에 담는 법이다.

 

만약 여기서 N과 M의 문자길이가 큰 값과 작은 값이 무작위로 주어진다면 비교전에 long과 short를 비교해서 나눈다음에 문제를 풀면된다.

 

if N[t] != M[i+t]:

나는 여기서 다른값이 나오면 break를 걸었는데, 다른 풀이를 보면 다 값은 값이 나오는 경우를 찾는 방식으로 푸는 경우도 있다. 두 가지 방법다 생각해보고 어느 부분의 풀이가 효율이 좋은지 생각해 보자.

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함