반응형
#INFO
난이도 : SILVER3
문제유형 : 브루트포스 알고리즘
출처 : https://www.acmicpc.net/problem/1436
#SOLVE
모든 경우의 수를 탐색하는 브루트포스 방식으로 문제를 풀이하였다.
탐색을 수행할 숫자(cnt)를 to_string 함수를 이용해 문자열 타입으로 바꿔준 뒤, find 함수를 사용해 cnt 내부에 연속된 666이 존재하는지 탐색한다.
string str = to_string(cnt);
// cnt에서 연속된 666을 탐색한 경우
if(str.find("666") != -1){
a++;
}
#CODE
#include <iostream>
#include <string> // to_string, find
using namespace std;
void solve(int n){
ios::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
int a = 0;
int cnt = 0;
while(true){
string str = to_string(cnt);
// cnt에서 연속된 666을 탐색한 경우
if(str.find("666") != -1){
a++;
}
if(a == n){
cout << cnt << '\n';
break;
}
cnt++;
}
}
int main(){
int n;
cin >> n;
solve(n);
return 0;
}
반응형
'Archive2 > ProblemSolving' 카테고리의 다른 글
[BOJ] C++ 1978 "소수 찾기" 문제 풀이 _ nov (0) | 2022.07.08 |
---|---|
[BOJ] C++ 9184 "신나는 함수 실행" 문제 풀이 _ nov (0) | 2022.07.05 |
[BOJ] C++ 10819 "차이를 최대로" 문제 풀이 _ nov (0) | 2022.06.15 |
[프로그래머스] LEVEL1 : 서울에서 김서방 찾기 C++ (0) | 2022.06.09 |
[BOJ] C++ 10814 "나이순 정렬" 문제 풀이 _ nov (0) | 2022.06.07 |