학습 정리/👨‍💻 PS Study

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

무딘붓 2023. 6. 23. 15:32

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

 

프로그래머스

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

programmers.co.kr

 

[소스 코드]

// 23.06.23

#include <string>
#include <vector>

using namespace std;

int solution(string t, string p) {
    int answer = 0;
    for(int i=0;i<t.length()-(p.length()-1);i++){
        long long t_int=stoll(t.substr(i,p.length()));
        long long p_int=stoll(p);
        if(t_int<=p_int){
            answer++;
        }
    }
    
    return answer;
}

간단한 문제지만 문자열을 정수로 변환하는 과정에서,

변환된 정수를 int로 저장했다가는 " aborted (core dumped) " 오류가 나옵니다.

1 ≤ p의 길이 ≤ 18 이므로, long long을 이용해서 변환값을 저장해주면 오류 없이 문제가 해결 가능합니다.

 

+ string → long long 변환은 stoll() 함수를 이용하면 됩니다.