string 클래스 함수를 이용
풀이
- 1일 때는 666을 출력하도록 한다. (안해도 되긴 함)
- 반복문을 통해 입력값 n과 찾은 수의 번째 cnt가 같아지면 빠져나오도록 한다.
- 정수를 문자열로 바꿔준다.
- 작은 수부터 탐색하기 위해서는 문자열의 순서를 뒤집어준다.
ex) 1234 -> 4321
- find함수를 이용해 문자열에 666이 있는지 확인한다.
find함수는 문자열이 있다면, 문자의 첫번째 인덱스 값을 리턴한다.
없다면, string::npos를 리턴한다.
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
if(n == 1)
{
cout << 666 << endl;
return 0;
}
int cnt = 1;
int i = 667;
while(cnt < n)
{
string str = to_string(i);
for(int j = 0; j < str.length() / 2; j++)
{
swap(str[j], str[str.length() - j - 1]);
}
if(str.find("666") != string::npos)
{
cnt++;
}
i++;
}
cout << i - 1 << endl;
}