한다 공부
[C++] 백준 알고리즘 10448 유레카 이론 (브루트 포스) 본문
브루트 포스란 무엇인가?
모든 경우의 수를 다 해보는 것이다.
이런 단순한 방법이 때로는 가장 합리적인 방법일 수도 있다.
#include<iostream>
#include<vector>
using namespace std;
vector<int> num;
//삼각수를 벡터에 push_back
void calc() {
int sum = 0;
int k = 1;
while (sum < 1000) {
sum += k;
num.push_back(sum);
k++;
}
}
//세 삼각수의 합이 입력한 수이면 true 리턴
bool check(int n) {
bool c = false;
for (int i = 0; i < num.size(); i++) {
for (int j = 0; j < num.size(); j++) {
for (int k = 0; k < num.size(); k++) {
if (num[i] + num[j] + num[k] == n)
{
c = true;
break;
}
}
}
}
return c;
}
int main() {
int n;
cin >> n;
calc();
while (n--) {
int t;
cin >> t;
if (check(t))
cout << 1 << '\n';
else
cout << 0 << '\n';
}
}
'Algorithm > 문제풀이' 카테고리의 다른 글
[C++] 백준 알고리즘 3077 임진왜란 (0) | 2021.09.27 |
---|---|
[C++] 백준 알고리즘 2858 기숙사 바닥 (0) | 2021.09.27 |
[C++] 백준 알고리즘 6588 골드바흐의 추측 (에라토스테네스의 체) (0) | 2021.09.21 |
[C++] 백준 알고리즘 9613 GCD 합 (유클리드 호제법) (0) | 2021.09.21 |
[C++] 백준 알고리즘 11050 이항 계수 1 (0) | 2021.09.21 |