[프로그래머스] Lv1 - 크기가 작은 부분 문자열

김멉덥·2023년 7월 18일
0

알고리즘 공부

목록 보기
58/171
post-thumbnail

문제

프로그래머스 연습문제


코드 구현

def solution(t, p):
    answer = 0
    
    start = 0
    for i in range(len(p), len(t)+1):
        sub_str = t[start : i]

        if(int(p) >= int(sub_str)):
            answer += 1

        start += 1
    
    return answer

풀이

  • sub_strt에서 p의 길이만큼 자르는 문자열을 담는 변수다.
  • 자르고 나서 → 비교하기
    • 만약 p가 sub_str보다 크거나 같다면, answer += 1

ex. “3 1 4 1 5 9 2" 라면, 3개씩 잘라서 p와 비교할 때의 인덱스는 012, 123, 234, 345, 456 이렇게 잘라진다.

따라서 슬라이싱할 때 [시작:끝] 이라면 시작은 0부터 설정하여 1씩 늘리고, 은 p의 길이로 설정하여 1씩 늘리면 된다. (끝은 포함되어 잘리지 않기 때문에 p의 길이로 설정해야 그 전까지 잘리게 된다.)

profile
데굴데굴 뚝딱뚝딱 개발기록

1개의 댓글

comment-user-thumbnail
2023년 7월 18일

아주 유익한 내용이네요!

답글 달기