본문으로 바로가기

HackerRank Python Solution / Find a string

category Develop/hackerrank.com 2022. 1. 17. 02:44

 

 

Find a string

def count_substring(string, sub_string):
    cross = 0
    for i in range(len(string) - len(sub_string)+1):
        if string[i : i+len(sub_string)] == sub_string:
            cross += 1
    return cross


if __name__ == '__main__':
    string = input().strip()
    sub_string = input().strip()
    count = count_substring(string, sub_string)
    print(count)

 

 

해설

포맷팅 함수를 사용하여 '성'과 '이름'을 출력하는 코드이다.

 

len

# len함수는 문자열의 길이를 구하는 함수이다. 

>>> string = "ABCDCDC"
>>> len(string)
7
 
>>> sub_string = "CDC"
>>> len(sub_string)
3

 

인덱싱 / 슬라이싱

원하는 문자열을 선택하는 방법이다. 인덱싱이 '점'이라면 슬라이싱은 '선'으로 원하는 범위를 지정할 수 있다.
인덱싱/슬라이싱의 숫자는 0부터 시작한다. 따라서 문자열의 길이가 '7'이라면, 인덱싱은 문자열[6]이 된다.

# 인덱싱은 대괄호 []를 사용한다.

>>> string = "ABCDCDC"
>>> string[0]
'A'
>>> string[6]
'C'

>>> sub_string = "CDC"
>>> sub_string[0]
'A'
>>> sub_string[2]
'C'
>>> sub_string[6]
IndexError: string index out of range


# 슬라이싱은 쌍점(:)을 사용한다. 
# 다만, 슬라이싱 사용시 마지막 숫자는 포함되지 않는다.
# 따라서'마지막 숫자 +1'을 하여야 문자열의 마지막 값까지 출력이 가능하다. 

>>> string = "ABCDCDC"
>>> string[0:6]
'ABCDCD'
>>> string[0:7]
'ABCDCDC'
>>> string[1:7]
'BCDCDC'
>>> string[5:999]
'DC'

>>> sub_string = "CDC"
>>> sub_string[0:2]
'CD'
>>> sub_string[0:3]
'CDC'
>>> sub_string[1:3]
'DC'
>>> sub_string[3:999]
''



for / range

https://bohemihan.tistory.com/entry/HackerRank-Python-Solution-Loops

 

HackerRank Python Solution / Loops

Loops if __name__ == '__main__': n = int(input()) for i in range(n): print(i*i) 해설 반복문과 숫자형연산자를 활용한 프로그래밍이다. for문 >>> a = "aBc" >>> for c in s: ... print(s) ... aBc aBc aBc..

bohemihan.tistory.com