728x90
반응형
1. 문제
https://www.acmicpc.net/problem/1436
2. 풀이과정
종말의 숫자란 어떤 수에 6이 적어도 3개이상 연속으로 들어가는 수이다.
N번째로 작은 종말의 숫자를 찾는 문제이다.
1, 2, 3, 4, ....
모든 수를 검사하며 해당 수가 종말의 수이면 개수를 세서 개수가 N이 되면
해당 숫자를 출력해주면 된다.
[코드설명]
num 변수는 숫자를 하나씩늘리는 변수이다.
6이 적어도 3개 들어가면 되므로 숫자를 문자열로 바꿔서
"666"이 있는지 검사하며 cnt(개수)를 늘려준다.
cnt가 원하는 n이 되면 num을 출력해주고 종료한다.
3. 코드
#include <iostream>
#include <string>
using namespace std;
int main() {
cin.tie(NULL);
ios::sync_with_stdio(false);
long long int num = 0;
int cnt = 0, n;
cin >> n;
while(1) {
if(cnt == n) {
cout << num;
break;
}
num++;
string tmp = to_string(num);
if(tmp.find("666")!=string::npos) cnt++;
}
return 0;
}
728x90
반응형
'💡 Problem Solving > Baekjoon' 카테고리의 다른 글
[백준 - 2210] 숫자판 점프 [C++] (0) | 2021.01.24 |
---|---|
[백준 - 2503] 숫자 야구 [C++] (0) | 2021.01.23 |
[백준 - 15663] N과 M (9) [C++] (0) | 2021.01.20 |
[백준 - 2529] 부등호 [C++] (0) | 2021.01.18 |
[백준 - 2108] 통계학 [C++] (0) | 2021.01.17 |