반응형
brute force로 푼 문제였습니다.
풀이방법
1. 누적합을 1000까지 구해줍니다.
2. 누적합이 1000을 넘는 구간은 45번째 수부터이므로 3개 수들 합이 찾으려는 수와 같은지 3개의 for문을 이용해 찾아줍니다.
Code
#include <bits/stdc++.h>
#define ll long long
using namespace std;
int triangleNum[1001];
int t;
bool ck(int num){
for(int i = 1; i <=50; i++)
for(int j = 1; j <=50; j++)
for(int k = 1; k <= 50; k++)
if(triangleNum[i] + triangleNum[j] + triangleNum[k] == num)
return true;
return false;
}
int main(){
for(int i = 1; i <= 1000; i++) triangleNum[i] = triangleNum[i-1] + i;
cin >> t;
while(t--){
int num;
cin >> num;
cout << ck(num) <<'\n';
}
}
'Algorithm > Brute Force' 카테고리의 다른 글
(C++) - 백준(BOJ) 4641 : Doubles (0) | 2021.05.05 |
---|---|
(C++) - 백준(BOJ) 2503번 : 숫자야구 (0) | 2021.02.19 |
(C++) - 백준(BOJ) 17825번 : 주사위 윷놀이 (0) | 2021.02.17 |
(C++) - 프로그래머스(고득점 kit - 완전탐색) : 까펫 (0) | 2021.02.16 |
(C++) - 프로그래머스(고득점 kit - 완전탐색) : 소수 찾기 (0) | 2021.02.15 |