본문 바로가기

ALGORITHM/프로그래머스

(프로그래머스 레벨 1)크기가 작은 부분 문자열

문제를 해결했지만 몇가지 테스트 케이스를 통과하지 못했다.

signal: aborted (core dumped)

이라는 에러 메시지를 받았다. 이유는 입력값에 따른 값의 크기를 int데이터타입이 받지 못해서 인거 같다.

unsigned long long 으로 데이터 타입을 선언해주었더니 해결되었다.

#include <string>
#include <vector>
#include <iostream>

using namespace std;

int solution(string t, string p) {
    int answer = 0;
    int firstIndex = 0;
    int length = p.length();
    int lastIndex = -1;
    string sum;
    unsigned long long sum2;
    unsigned long long pNum;
    int count = 0;
    int tLength = t.length();
    
    
    while (length-1 <= tLength-1)
    {
        cout << 1;
        lastIndex = length - 1;
        for (int i = firstIndex; i <= lastIndex; i++)
        {
            sum += t[i];
            
            
        }
        
        sum2 = stoull(sum);
        pNum = stoull(p);
        if (sum2 <= pNum)
            count++;
        firstIndex++;
        length++;
        sum = "";
    }
    
    answer = count;

    return answer;
}