본문 바로가기

완전 탐색 (Brute Force)

백준 10448 유레카 이론

문제 링크: https://www.acmicpc.net/problem/10448

 

10448번: 유레카 이론

문제 삼각수 Tn(n ≥ 1)는 [그림]에서와 같이 기하학적으로 일정한 모양의 규칙을 갖는 점들의 모음으로 표현될 수 있다. [그림] 자연수 n에 대해 n ≥ 1의 삼각수Tn는 명백한 공식이 있다. Tn = 1 + 2 + 3 + ... + n = n(n+1)/2 1796년, 가우스는 모든 자연수가 최대 3개의 삼각수의 합으로 표현될 수 있다고 증명하였다. 예를 들어, 4 = T1 + T2 5 = T1 + T1 + T2 6 = T2 + T2 or 6 = T

www.acmicpc.net

삼각수 = 1, 3, 6, 10, 15, .... 

n번째 삼각수 = n * (n + 1) / 2

45번째 삼각수 = 45 * 46 / 2 = 1035

3중 for문을 각각 45번째 삼각수까지 돌면서 세개의 삼각수의 합이 입력받은 수와 같은경우가 있는지 확인한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <bits/stdc++.h>
using namespace std;
 
int triNum(int x) {
    return x * (x + 1/ 2;
}
 
int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
 
    int t;
    cin >> t;
    while(t--) {
        int n;
        cin >> n;
 
        bool ok = false;
        for(int i = 1; i <= 45; i++) {
            for(int j = 1; j <= 45; j++) {
                for(int k = 1; k <= 45; k++) {
                    if(triNum(i) + triNum(j) + triNum(k) == n) ok = true;
                }
            }
        }
 
        if(ok) cout << 1 << '\n';
        else cout << 0 << '\n';
    }
    return 0;
}
 
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter

'완전 탐색 (Brute Force)' 카테고리의 다른 글

백준 1018 체스판 다시 칠하기  (0) 2020.04.24
백준 2503 숫자 야구  (0) 2020.04.24
백준 3085 사탕 게임  (0) 2020.04.23
백준 2231 분해합  (0) 2020.04.23
백준 2309 일곱 난쟁이  (0) 2020.04.23