백준 1436번: 영화감독 숌

Se0ng_1l·2022년 6월 30일
0

백준

목록 보기
19/40

string 클래스 함수를 이용

풀이

  1. 1일 때는 666을 출력하도록 한다. (안해도 되긴 함)
  2. 반복문을 통해 입력값 n과 찾은 수의 번째 cnt가 같아지면 빠져나오도록 한다.
  3. 정수를 문자열로 바꿔준다.
  4. 작은 수부터 탐색하기 위해서는 문자열의 순서를 뒤집어준다.
    ex) 1234 -> 4321
  5. 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;
}
profile
치타가 되고 싶은 취준생

0개의 댓글