알고리즘 문제풀이/프로그래머스

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

노력의천재 2024. 1. 13. 14:17

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

 

프로그래머스

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

programmers.co.kr

 

부분 문자열의 길이가 18자리가 될 수 있으므로 int의 범위가 넘어간다.

따라서 long long 타입으로 변환해야 하는 것이 중요

 

#include <string>
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;
typedef long long ll;

int solution(string t, string p) {
    int answer = 0;
    int tLen = t.size(), pLen = p.size();
    
    for (int i = 0; i < tLen - pLen + 1; i++) {
        ll num = stoll(t.substr(i, pLen));
        if (num <= stoll(p)) answer++;
    }
    
    return answer;
}