목차
https://www.acmicpc.net/problem/1436
코드
#include <iostream>
using namespace std;
bool judge_666(int n)
{
string s = to_string(n);
for(int i=0; i < s.length() - 2; i++)
{
string temp = "";
for(int j=i; j<i+3; j++)
{
temp += s[j];
}
if(temp == "666")
{
return true;
}
}
return false;
}
int main()
{
int n, cnt = 0, now = 666;
cin >> n;
while(true)
{
if(judge_666(now))
{
cnt ++;
}
if(cnt == n)
{
cout << now;
break;
}
now++;
}
}
설명
그냥 대충 빠르게 풀려고 666부터 시작해서 모든 수를 string으로 바꾸고 substring 연산을 해서 666이 있으면 count를 하는것으로 했는데 이렇게 하면 좀 느리다.
좀 빠르게 하려면 1000씩 나눠가면서 확인하는법도 있다.
'공부 > 백준(C++) - 2022~' 카테고리의 다른 글
백준 2751번: 수 정렬하기2 [C++] (0) | 2022.01.26 |
---|---|
백준 2750번: 수 정렬하기[C++] (0) | 2022.01.26 |
백준 1018번: 체스판 다시 칠하기 [C++] (0) | 2022.01.25 |
백준 7568번: 덩치 [C++] (0) | 2022.01.25 |
백준 2231번: 분해합 [C++] (0) | 2022.01.25 |