18. Find a String
[ 난이도: Easy | 분야: Strings ]
1. 과제
과제 설명
이번 챌린지에서는, 사용자가 문자열과 하위문자열을 입력한다.
이 챌린지에서 하위문자열이 문자열 안에 얼마나 있는지 수를 세야 한다.
문자열을 탐색하는 것은 왼쪽에서 오른쪽으로 진행한다.(오른쪽에서 왼쪽으로 진행하는 것이 아님에 유의해라)
메모: 문자열 문자는 대소를 구분합니다.
입력 형식
입력의 첫 번째 줄은 원래 문자열을 포함하고 있다.
그 다음줄은 하위문자열을 포함하고 있다.
제약 사항
문자열의 길이는 1보다 크거나 같고 200보다 작거나 같다.
문자열 안의 각 문자들은 아스키문자다.
출력 형식
출력으로 보내는 정수는 하위문자열의 원래 문자열에 얼마나 겹쳐있는지 경우의 수를 나타낸다.
입력 예시
ABCDCDC
CDC
출력 예시
2
컨셉
몇몇 문자열 처리하는 예시는 매우 유용하다.
몇몇 컨셉들을 여기에서 소개하고자 한다:
파이썬에서, 문자열의 길이는 len(s)라는 함수를 통해 알 수 있다.(여기서 s는 문자열이다.)
문자열을 훝기 위해 문자열의 길이와 for 문을 활용한다:
for i in range(0, len(s)):
print(s[i])
range 함수는 특정 길이만큼 반복하는데 사용한다:
range(0, 5)
여기서, 0~4 범위만 반복하고 5는 제외된다.
문제
def count_substring(string, sub_string):
return
if __name__ == '__main__':
string = input().strip()
sub_string = input().strip()
count = count_substring(string, sub_string)
print(count)
더보기
정답
def count_substring(string, sub_string):
result = 0
len_string = len(string)
len_sub = len(sub_string)
for i in range(len_string - len_sub + 1):
isSame = False
for j in range(len_sub):
if(string[i+j]==sub_string[j]):
isSame = True
else:
isSame = False
if(isSame == False):
break
if(isSame):
result += 1
return result
if __name__ == '__main__':
string = input().strip()
sub_string = input().strip()
count = count_substring(string, sub_string)
print(count)
ⓒ Hackerrank. All Rights Reserved.
'프로그래밍 언어 > Python' 카테고리의 다른 글
[Hackerrank] 19. String Validators (0) | 2024.03.11 |
---|---|
[Hackerrank] 17. Mutations (0) | 2024.03.08 |
[Hackerrank] 16. What's Your Name? (0) | 2024.03.07 |
[Hackerrank] 15. String Split and Join (0) | 2024.03.07 |
[Hackerrank] 14. sWAP cASE (0) | 2024.03.06 |