본문으로 바로가기

백준_유레카이론

category 알고리즘 2021. 5. 5. 11:15

www.acmicpc.net/problem/10448

 

10448번: 유레카 이론

프로그램은 표준입력을 사용한다. 테스트케이스의 개수는 입력의 첫 번째 줄에 주어진다. 각 테스트케이스는 한 줄에 자연수 K (3 ≤ K ≤ 1,000)가 하나씩 포함되어있는 T개의 라인으로 구성되어

www.acmicpc.net

브루투포스 문제 입니다. 3개의 숫자 합의 범위가 1000까지 이므로 먼저 50개의 숫자를 구해놓고, 3중 for문으로 돌면서 검색해도 시간 초과가 나지 않았습니다.

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;

public class 유레카이론 {

    static int n;
    static ArrayList<Integer> arrayList;

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        n = Integer.parseInt(br.readLine());
        arrayList = new ArrayList<>();

        arrayList.add(1);
        arrayList.add(3);
        arrayList.add(6);
        arrayList.add(10);
        int sum = 5;

        for(int i = 4; i < 50; i++) {
            arrayList.add(arrayList.get(i - 1) + sum);
            sum ++;
        }

        for (int i = 0; i < n; i++) {
            int input = Integer.parseInt(br.readLine());

            boolean result = isEurekaNumber(input);

            if (result) {
                System.out.println(1);
            } else {
                System.out.println(0);
            }
        }
    }

    private static boolean isEurekaNumber(int input) {
        for (int i = 0; i < 44; i++) {
            for (int j = 0; j < 44; j++) {
                for (int p = 0; p < 44; p++) {
                    if (arrayList.get(i) + arrayList.get(j) + arrayList.get(p) == input) {
                        return true;
                    }
                }
            }
        }

        return false;
    }
}

'알고리즘' 카테고리의 다른 글

백준_1966  (0) 2021.05.09
백준_14888  (0) 2021.04.25
백준_20055  (0) 2021.04.25
백준_12026  (0) 2021.04.11
프로그래머스_등굣길  (0) 2021.04.11