Memo
666이 들어간 숫자가 곧 시리즈의 숫자를 의미하므로 666이 수 표현 사이에 끼여 있어도 무방함을 의미
예를 들어 666이 1번 시리즈이고 1666이 2번 시리즈라면, 2666, 3666, 4666, 5666은 곧 3번, 4번, 5번, 6번 시리즈가 됨
단, 666이 수 표현 사이에 끼여 있어도 되므로 7번 시리즈는 6666이 아닌 6660임
단순히 666이라는 숫자가 끼여 있으면 이것이 곧 시리즈의 표현이 되므로, 1씩 증가시켜 666이 포함되어 있는지 확인 후에 이를 시리즈 번호로 순차적으로 할당하면 됨
이 까지이고, 각 수를 10 단위로 쪼개서 666을 포함하고 있는지 반복문을 돌리게 되므로 반복 횟수는 정도로 생각할 수 있으므로 시간 제한에 걸리지 않음
Code
제출 날짜
@8/20/2021
메모리
2020 KB
시간
24 ms
#include <iostream>
int g_series;
int g_answer;
void pre_setting(void)
{
std::ios_base::sync_with_stdio(false);
std::cin.tie(NULL);
std::cout.tie(NULL);
}
void input_action(void)
{
std::cin >> g_series;
}
void solution(void)
{
int i;
int tmp;
int cnt;
i = 0;
cnt = 0;
while (i != g_series)
{
tmp = ++cnt;
while (tmp)
{
if (tmp % 1000 == 666 && ++i)
break;
tmp /= 10;
}
}
g_answer = cnt;
}
void output_action(void)
{
std::cout << g_answer;
}
int main(void)
{
pre_setting();
input_action();
solution();
output_action();
return (0);
}
C++
복사