본문 바로가기
프로그래머스/프로그래머스 Lv0

Lv0 문자열이 몇 번 등장하는지 세기

by 독기품기 2024. 5. 29.

https://school.programmers.co.kr/learn/courses/30/lessons/181871

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

이 문제는 범위를 잘 설정해서 풀어야 하는 문제이다.

answer = 0을 선언해준후 for i in range(len(mystring)-len(pat)+1)를 한 이유는 pat이 문자열 안에 들어가 있는지 확인을 해야하는데 아래 if pat in mystring[i:len(pat)+i]를 보면 pat의 길이가 예를 들어 3이고 mystring의 길이가 6이라면 0~3+0, 1~3+1.... 쭉 인덱스를 찾아 확인하는데 마지막 반복을 할 때 3~3+3은 mystring에 포함하는 구간이지만 i가 1이 더 커지면 주어진 문자열보다 포함구간이 더 길어져 오류가 발생해 i+len(pat)의 길이가 mystirng과 같아지도록 조정해준 것이다. +1을 한 이유는 range의 범위는 항상 미만이기에 +1를 해야 문자열 끝까지 확인할 수 있다.

그 후 if 문이 참이라면 answer += 1 해주고 리턴 answer해주면 된다.

'프로그래머스 > 프로그래머스 Lv0' 카테고리의 다른 글

Lv0 7의 개수  (0) 2024.05.30
Lv0 수열과 구간 쿼리3  (0) 2024.05.30
Lv0 진료 순서 정하기  (0) 2024.05.28
Lv0 세 개의 구분자  (0) 2024.05.28
Lv0 간단한 논리 연산  (0) 2024.05.25