[문제 링크] 👇
프로그래머스
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
'프로그래머스 코딩테스트 > Level 1' 카테고리의 다른 글
[Programmers] L1. 삼총사 (Python) (0) | 2024.11.06 |
---|---|
[Programmers] L1. 예산 (Python) (0) | 2024.10.30 |
[Programmers] L1. 부족한 금액 계산하기 (Python) (0) | 2024.10.25 |
[Programmers] L1. 내적 (Python) (0) | 2024.10.25 |
[Programmers] L1. 음양 더하기 (Python) (0) | 2024.10.25 |