Algorithm

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

moguogu 2023. 2. 22. 23:59

문제설명

알고리즘

1. t 문자열을 하나하나 조회한다

2. 조회시 현재 인덱스에서 p의 길이 -1 보다 작을때만 연산을 하는데, substr로 문자를 자른다

3. compare함수를 사용해서 사전순으로 더 앞이면 작거나 같다 -> 답 갯수 증가

코드

#include <string>
#include <vector>
#include <iostream>
using namespace std;

int solution(string t, string p) {
    int answer = 0;
    for(int i=0; i<t.size(); i++){
        if(i + p.size()-1 < t.size()){ //범위를 넘어가지 않도록 계산 
            string temp = t.substr(i, p.size()); //잘라서 불러오기
            if(temp.compare(p)<=0) // 사전순으로 더 앞인지 확인
                answer++;
        }
        else
            break;         
    }
    
    return answer;
}