SWExpert/D3

[D3] 1213. [S/W 문제해결 기본] 3일차 - String

MakeMoneying 2020. 9. 10. 00:41

[D3] 1213. [S/W 문제해결 기본] 3일차 - String

출처

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14P0c6AAUCFAYi&categoryId=AV14P0c6AAUCFAYi&categoryType=CODE&&&

문제

주어지는 영어 문장에서 특정한 문자열의 개수를 반환하는 프로그램을 작성하여라.

Starteatingwellwiththeseeighttipsforhealthyeating,whichcoverthebasicsofahealthydietandgoodnutrition.

위 문장에서 ti 를 검색하면, 답은 4이다.

  • 제약 사항

총 10개의 테스트 케이스가 주어진다.

문장의 길이는 1000자를 넘어가지 않는다.

한 문장에서 검색하는 문자열의 길이는 최대 10을 넘지 않는다.

한 문장에서는 하나의 문자열만 검색한다.

[입력]

각 테스트 케이스의 첫 줄에는 테스트 케이스의 번호가 주어지고 그 다음 줄에는 찾을 문자열, 그 다음 줄에는 검색할 문장이 주어진다.

[출력]

#부호와 함께 테스트 케이스의 번호를 출력하고, 공백 문자 후 테스트 케이스의 답을 출력한다.

입력
출력
 1
 ti
 Starteatingwellwiththeseeighttipsforhealthyeating,whichcoverthebasics ...
 2
 ing
 Thedoublehelixformsthestructuralbasisofsemi-conservativeDNAreplication.1,2Less ...
 ...
 #1 4


 #2 4


문제 해석

문장 전체를 한 문자씩 보면서 만약 각 앞 문자가 맞다면, 다음 문자 하나하나씩 확인하면서 만약 끝까지 같다면 Answer을 1을 증가하는 방식으로 풀어보았다.

문제 풀이

1
2
3
4
5
6
7
8
9
10
11
12
13
14
for _ in range(10):
    Count = int(input())
    Check = input()
    String = input()
    Answer = 0
    for i in range(0,len(String)-len(Check)+1):
        if String[i] == Check[0]:
            for j in range(len(Check)+1):
                if j==len(Check):
                    Answer += 1
                else:
                    if String[i+j] != Check[j]:
                        break
    print("#{} {}".format(Count,Answer))
cs

출처

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14P0c6AAUCFAYi&categoryId=AV14P0c6AAUCFAYi&categoryType=CODE&&&

 

SW Expert Academy

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

swexpertacademy.com