https://www.acmicpc.net/problem/1436
처음 생각한 풀이법 :
다 적어서, 뭔가 규칙을 찾아보려고 노력했던 것 같다.
20분정도 쓰다보니까 뭔가 규칙이 보일 것 같았으나, 생각이 바뀌어서 처음부터 그냥 세면 안되나? 시간이 오버되려나 하고 1억 번 정도 종말수를 찾아보자고 생각해서 풀었습니다.
#include<iostream>
#include<vector>
#include<string>
#include<map>
using namespace std;
vector<int> End;
bool findEndNum(int i) {
if (i < 666)return false;
string sixes = to_string(i);
bool check = false;
for (int i = 0; i < sixes.size()-2; i++) {
if (sixes[i] == '6' && sixes[i+1]=='6' && sixes[i+2]=='6') {
check = true;
}
}
return check;
}
int main() {
int num; //몇번째 종말수 출력
cin >> num;
for (int i = 0; i < 100000000; i++) {
if (findEndNum(i)) {
End.push_back(i);
}
}
cout <<End[num-1]<<endl;
return 0;
}
'코딩테스트_백준풀이' 카테고리의 다른 글
수 찾기 #1920 c++ 풀이 (0) | 2023.10.05 |
---|---|
팩토리얼 0의 개수 #1676 c++ 풀이 (0) | 2023.10.05 |
단어정렬 #1181 c++ 풀이 (1) | 2023.10.03 |
팰린드롬수 #1259 c++ 풀이 (0) | 2023.10.03 |
체스판 다시 칠하기 #1018번 (1) | 2023.10.03 |