666이라는 숫자가 등장할때마다 확인해주면 되는 것이라고 생각해서 가장 간단하게 해결하면 부르트포스로 해결하면 될 것이라고 생각하였다. Python이었다면 그냥 대강 string으로 변환한 다음에 혹시 "666"있니? 라고 물어보면 될거를 이 시플플 친구는 싹 다 자리를 쪼개서 삼 연속 나올때마다 cnt를 늘리는 형식으로 만들어야해서 여간 귀찮은 과정이 아니었다. 하지만 뭐 하다보면 된다고 완성한 것 같다. 아니 분명 다 되는데 출력 초과가 나온다 왜지? 웨지감자... ㅈㅅ
# include "iostream"
using namespace std;
int main(void){
long long i = 667, n, cnt = 1;
cin >> n;
while (true){
if (n == 1) cout << "666";
else {
long long temp = i, tempCnt = 0;
while(temp > 0){
if (temp % 10 == 6) tempCnt ++;
else tempCnt = 0;
if (tempCnt == 3) {
cnt += 1;
break;
}
temp = temp / 10;
}
if (cnt == n) {
cout << i;
break;
}
i ++;
}
}
}
아 1에서 에러가 뜬다... 이제 알았다. 괜히 시간 좀 줄여보겠다고 667부터 시작한게 화근이었다. 괜한 배려로 내 머리를 힘들게 하지말자...
# include "iostream"
using namespace std;
int main(void){
long long i = 667, n, cnt = 1;
cin >> n;
while (true){
if (n == 1) {
cout << "666";
break;
}
else {
long long temp = i, tempCnt = 0;
while(temp > 0){
if (temp % 10 == 6) tempCnt ++;
else tempCnt = 0;
if (tempCnt == 3) {
cnt += 1;
break;
}
temp = temp / 10;
}
if (cnt == n) {
cout << i;
break;
}
i ++;
}
}
}