프로그래머스 코딩테스트/Level 1
[Programmers] L1. 크기가 작은 부분문자열 (Python)
dev스카이
2024. 10. 25. 23:38
[문제 링크] 👇
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
풀이
t 의 길이에서 p 의 길이를 뺀 후 + 1 만큼 for문을 돌린다.
- 만일 t 의 길이가 7이고, p 의 길이가 3일 때 연산을 하면 4이다. 4번째 인덱스까지 확인하기 위해 + 1을 해준다.
- 이렇게 해주는 이유는, t를 p 만큼의 길이로 슬라이싱을 하기 때문이다.
- 현재 위치(i) 부터 p의 길이 + 현재 위치(i) 까지 자르면 p 만큼의 길이를 확인할 수 있다.
- 예를 들어 현재 위치가 4라고 할 때, p의 길이인 3과 현재 위치 4를 더하면 7이 된다. 즉 4 번째 인덱스부터 6 번째 인덱스까지 자르는데 6번째 인덱스는 t의 마지막 인덱스이기 때문에 p의 길이를 빼준 만큼 for 문을 돌려야 한다.
자른 문자열과 p는 문자이기 때문에 값 비교를 위해 정수형으로 변환한다.
int()
- 정수로 변환활 문자열을 인자로 전달하면 정수형을 반환한다.
슬라이싱 방법
str[start:end]
- start 부터 end 까지 자른다.
str[0:] # 0번째 인덱스부터 끝까지 자르기
str[:5] # 첫 번째 인덱스부터 4번째 인덱스까지 자르기
str[:] # 모든 인덱스 가져오기
Solution
def solution(t, p):
answer = 0
for i in range(len(t) - len(p) + 1):
if int(p) >= int(t[i:len(p) + i]):
answer += 1
return answer