728x90
브루트 포스 문제입니다.
영화 제목을 666을 포함해서 지을 때 N번째 영화의 숫자는 무엇인지 구하는 문제입니다.
ex)
1. 666
2. 1666
3. 2666
4. 3666
5. 4666
6. 5666
7. 6660
8. 6661
9. 6662
...
숫자를 1씩증가하여 모든 숫자를 차례대로 검사합니다.
수를 string으로 바꿔서 find 함수를 통해 '666'이 포함되어 있는지 확인하고
포함되어 있다면 카운트를 증가해줍니다.
카운트가 n과 같아지면 현재 숫자를 출력합니다.
#include <iostream>
#include <string>
using namespace std;
int main(int argc, char *argv[])
{
int n;
int count = 0;
int title = 665;
string s;
cin >> n;
while(++title){
s = to_string(title);
if (s.find("666") != -1) {
++count;
}
if (count == n) {
cout << title << endl;
break;
}
}
return 0;
}
'알고리즘' 카테고리의 다른 글
[C++] 백준 5086번 배수와 약수 (0) | 2019.09.02 |
---|---|
[C++] 백준 1541번 잃어버린 괄호 (0) | 2019.09.02 |
[C++] 백준 1018번 체스판 다시 칠하기 (0) | 2019.09.02 |
[C++] 백준 7568번 덩치 (0) | 2019.09.02 |
[C++] 백준 2231번 분해합 (0) | 2019.09.01 |