- λ¬Έμ
666μ μ’ λ§μ λνλ΄λ μλΌκ³ νλ€. λ°λΌμ, λ§μ λΈλ‘λ²μ€ν° μνμμλ 666μ΄ λ€μ΄κ° μ λͺ©μ λ§μ΄ μ¬μ©νλ€. μνκ°λ μμ μΈμμ μ’ λ§ μ΄λΌλ μλ¦¬μ¦ μνμ κ°λ μ΄λ€. μ‘°μ§ λ£¨μΉ΄μ€λ μ€νμμ¦λ₯Ό λ§λ€ λ, μ€νμμ¦ 1, μ€νμμ¦ 2, μ€νμμ¦ 3, μ€νμμ¦ 4, μ€νμμ¦ 5, μ€νμμ¦ 6κ³Ό κ°μ΄ μ΄λ¦μ μ§μκ³ , νΌν° μμ¨μ λ°μ§μ μ μμ λ§λ€ λ, λ°μ§μ μ μ 1, λ°μ§μ μ μ 2, λ°μ§μ μ μ 3κ³Ό κ°μ΄ μν μ λͺ©μ μ§μλ€. νμ§λ§ μμ μμ μ΄ μ‘°μ§ λ£¨μΉ΄μ€μ νΌν° μμ¨μ λ°μ΄λλλ€λ κ²μ 보μ¬μ£ΌκΈ° μν΄μ μν μ λͺ©μ μ’ λ€λ₯΄κ² λ§λ€κΈ°λ‘ νλ€.
μ’ λ§μ μλ μ΄λ€ μμ 6μ΄ μ μ΄λ 3κ° μ΄μ μ°μμΌλ‘ λ€μ΄κ°λ μλ₯Ό λ§νλ€. μ μΌ μμ μ’ λ§μ μλ 666μ΄κ³ , κ·Έ λ€μμΌλ‘ ν° μλ 1666, 2666, 3666, .... μ΄λ€. λ°λΌμ, μμ 첫 λ²μ§Έ μνμ μ λͺ©μ "μΈμμ μ’ λ§ 666", λ λ²μ§Έ μνμ μ λͺ©μ "μΈμμ μ’ λ§ 1666"μ κ°μ΄ μ΄λ¦μ μ§μ κ²μ΄λ€. μΌλ°νν΄μ μκ°νλ©΄, Nλ²μ§Έ μνμ μ λͺ©μ μΈμμ μ’ λ§ (Nλ²μ§Έλ‘ μμ μ’ λ§μ μ) μ κ°λ€.
μμ΄ λ§λ Nλ²μ§Έ μνμ μ λͺ©μ λ€μ΄κ° μλ₯Ό μΆλ ₯νλ νλ‘κ·Έλ¨μ μμ±νμμ€. μμ μ΄ μ리μ¦λ₯Ό νμ μ°¨λ‘λλ‘ λ§λ€κ³ , λ€λ₯Έ μνλ λ§λ€μ§ μλλ€.
- μ½λ
#include <iostream>
#include <vector>
#include <string>
using namespace std;
//μ°μ°νλ ν¨μ
int cal(int n) {
int cnt = 0; // μ«μ μΉ΄μ΄νΈ
int num = 666; // λ²‘ν° λ°°μ΄ ν¬κΈ°
while (true) {
string s = to_string(num); //stringμΌλ‘ λ³ν
if (s.find("666") == string::npos) { //μ°μμΌλ‘ μ΄λ£¨μ΄μ§ 666μ μ°Ύμ§ λͺ»νλ©΄
num++; //λ€μμλ‘ μ΄λ
continue;
}
cnt++; // μ°μμΌλ‘ μ΄λ£¨μ΄μ§ 666μ μ°Ύμλ€λ©΄ cnt 1 μ¦κ°
if (cnt == n) { // cntκ°μ΄ nκ³Ό κ°μμ§λ©΄ numμ λ°ν
return num;
}
num++; //μμ§ κ°μμ§μ§ μμλ€λ©΄ λ€μ μλ‘ μ΄λ
}
}
int main()
{
int n, result;
//μ
λ ₯
cin >> n;
result = cal(n);
cout << result;
return 0;
}
- ν΄μ€
1. cal ν¨μ
- 666μ΄ λ΄κ²¨ μλ μ’ λ§μ μμΈμ§ νμΈνλ ν¨μ
: 첫λ²μ§Έ μ’ λ§μ μμΈ 666λΆν° μμ
: 666μ stringμΌλ‘ λ³ν
: λ§μ½ μ°μμΌλ‘ μ΄λ£¨μ΄μ§ 666μ μ°Ύμ§ λͺ»νλ€λ©΄ numμ μ¦κ°ν΄ λ€μμλ‘ μ΄λ
: μ°Ύμλ€λ©΄ cnt 1μ¦κ°
: λ§μ½ cnt κ°μ΄ nκ³Ό κ°μμ‘λ€λ©΄ nλ²μ§Έ μ’ λ§μ μλ₯Ό μ°Ύμ κ²μ΄λ―λ‘ numμ return
: nκ³Ό κ°μμ§μ§ μμλ€λ©΄ λ€μ μ’ λ§μ μλ₯Ό μ°ΎμμΌ νλ―λ‘ num +1
2. main ν¨μ
: nμ μ λ ₯ λ°κ³ calν¨μλ₯Ό μ΄μ©ν΄ κ³μ°ν μ’ λ§μ μλ₯Ό resultμ μ μ₯ν΄ μΆλ ₯