728x90
https://www.acmicpc.net/problem/10448
package BAEKJOON.Bronze.Ⅰ;
import java.util.Scanner;
/**
* 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율
* 1 초 256 MB 11401 6687 5245 57.822%
*/
public class NO10448 {
// 3중 for 문을 사용해 3개의 숫자를 구할 수 있는지 없는지 확인
// 시간제한은 1초이지만 배열의 길이가 45로 한정되어 있어
// 45 * 45 * 45 를 하더라도 시간이 충분하다.
static boolean check(int[] arr, int num) {
for (int i = 1; i < 45; i++) {
for (int j = 1; j < 45; j++) {
for (int k = 1; k < 45; k++) {
int sum = arr[i] + arr[j] + arr[k];
if (sum == num) {
return true;
}
}
}
}
return false;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] arr = new int[45];
// 배열에 먼저 값 담아준다.
for (int i = 0; i < arr.length; i++) {
arr[i] = i * (i + 1) / 2;
}
int n = sc.nextInt();
for (int l = 0; l < n; l++) {
int num = sc.nextInt();
System.out.println(check(arr, num) ? 1 : 0);
}
}
}
728x90
'Algorithm & SQL > BAEKJOON' 카테고리의 다른 글
백준 JAVA 10988 팰린드롬인지 확인하기 (0) | 2022.08.29 |
---|---|
백준 JAVA 10808 알파벳 개수 (0) | 2022.08.29 |
백준 JAVA 2309 일곱 난쟁이 (0) | 2022.08.26 |
백준 JAVA 2164 카드2 (0) | 2022.08.22 |
백준 JAVA 11659 구간 합 구하기4 (0) | 2022.08.22 |
댓글