반응형
문제풀이:https://www.acmicpc.net/problem/1436
666을 포함하는 값의 위치를 탐색하는 탐색문제였습니다.
별 다른 알고리즘기법이 포함되지 않기 때문에 구현문제라고도 생각할 수 있습니다.
666부터 수를 탐색하면서 666을 포함하는지 확인해주고 카운트값을 1씩 올려주면 탐색하면 되는 문제였습니다.
시간초과를 조심해야 하는데, 해당 문제는 10000까지 밖에 되지 않기 때문에 풀이가 가능했습니다.
정답코드입니다.
#include <iostream>
using namespace std;
int n = 0;
int arr_index = 0;
int val[15]; //자리수들을 저장할 배열
int main() {
cin >> n;
for (int i = 666; arr_index != n; i++) {
int num = i;
int num_size = 0;
bool jud = false;
while (num) { // 10이면 2자리수 이런식
val[num_size] = num % 10;
num /= 10;
num_size++;
}
num = i; // 다시 num은 i
for (int j = 0; j <= num_size - 3; j++) {
if (val[j] == 6 && val[j + 1] == 6 && val[j + 2] == 6) {
jud = true;
break;
}
}
if (jud == true)
arr_index++;
if (arr_index == n) {
cout << i << '\n';
return 0;
}
}
}
반응형
'알고리즘 > 기타' 카테고리의 다른 글
[백준] 11000-강의실 배정(C++) (0) | 2021.05.25 |
---|---|
[백준] 1068-트리(C++) (0) | 2021.05.21 |
[백준] 3020-개똥벌레(C++) (0) | 2020.03.21 |
[백준] 14570-나무 위의 구슬(C++) (0) | 2020.03.13 |
[백준] 15953-상금 헌터 (0) | 2020.02.01 |