프로그래머스 크기가 작은 부분 문자열
프로그래머스 크기가 작은 부분 문자열
오늘의 학습 키워드
문자열
문제
숫자로 이루어진 문자열 t와 p가 주어질 때, t에서 p와 길이가 같은 부분문자열 중에서,
이 부분문자열이 나타내는 수가 p가 나타내는 수보다 작거나 같은 것이
나오는 횟수를 return하는 함수 solution을 완성하세요.
풀이 1
설명
이 문제는 stoi를 사용하여 문자열를 정수형으로 변경
하여
두 수의 크기를 비교하는 방법으로 풀었습니다.
이 문제에서 stoi를 사용해서 간단하게 풀 수 있었습니다.
정답
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int solution(string t, string p)
{
int answer = 0; // p보다 작은 문자열의 개수
int pLen = p.length(); // 문자열 p의 길이
long pInt = stol(p); // 문자열 p의 정수값
for (int i = 0; i <= t.length() - pLen; i++)
{
string number_str = t.substr(i, pLen); // 현재 문자열의 i ~ i + pLen까지의 문자열
long number = stol(number_str); // 현재 문자열의 i ~ i + pLen까지의 문자열의 정수값
if (number <= pInt) // 현재 정수값이 p의 정수값 보다 작다면
answer++; // 개수 증가
}
return answer;
}
This post is licensed under CC BY 4.0 by the author.