<string> 헤더의 find()
함수를 사용하면 된다.
find(string str, int pos);
기준 문자열의 처음부터 탐색하고 싶으면 str 만 인자로 넘겨주면 되고,
특정 위치부터 탐색하고 싶으면 index 값을 두 번째 인자로 넘겨주면 된다.
찾고 싶은 문자(열) str 을 찾으면, 해당 문자(열)이 위치한 주솟값을 반환해준다.
여기서 주의할 점은 문자열에 str이 포함되어 있지 않을 때인데,
-1을 반환하는 게 아니라, string::npos를 반환한다.
[ex] BOJ 1436
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
using namespace std;
int getNumber(int N) {
int cnt = 0, i = 665;
string s;
while (cnt != N) {
i++;
s = to_string(i);
if (s.find("666") != string::npos) {
cnt++;
}
}
return i;
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
// 입력
int N;
cin >> N;
// 연산 및 출력
cout << getNumber(N);
return 0;
}