https://www.acmicpc.net/problem/1436
#include <iostream>
#include <string>
using namespace std;
int main(){
int inp; cin>>inp;
int cnt = 0;
string itos;
int some = 666;
if (inp ==1){
cout << 666;
return 0;
}
for(int i=666; i<10000000; i++){
itos = to_string(i);
if(itos.find("666") != string::npos){
cnt+=1;
}
if (cnt == inp) break;
}
cout<<itos;
}
- 666 이라는 숫자가 연속적으로 있어야한다.
- 따라서 입력 조건에 따르면 N이 10000까지 나온다고했는데, 이 때 나올 수 있는 제일 큰 숫자는 6660000 이다. 따라서 반복문 제한조건을 i<10000000 으로 정해줌
- 666~10000000 까지 666이 포함된 숫자면 카운트업 시켜주고, 입력에해당하는 숫자까지 도달했을때 break해주고 출력해준다
'자기개발👨💻 > 코딩 알고리즘' 카테고리의 다른 글
[C++] 백준 1931 회의실 배정 <pairVector> (0) | 2022.04.11 |
---|---|
[C++] 백준 11399 ATM //<pairArray> (0) | 2022.04.06 |
[C++] 백준 1182 부분수열의 합 (0) | 2022.03.30 |
[C++] 백준 1018 체스판 다시 칠하기 (0) | 2022.03.23 |
[C++] 백준 11279최대힙, 1927최소힙 (0) | 2022.03.18 |
[C++] 백준 1158 요세푸스 문제 //<queue> (0) | 2022.03.18 |