https://www.acmicpc.net/problem/10448
10448번: 유레카 이론
프로그램은 표준입력을 사용한다. 테스트케이스의 개수는 입력의 첫 번째 줄에 주어진다. 각 테스트케이스는 한 줄에 자연수 K (3 ≤ K ≤ 1,000)가 하나씩 포함되어있는 T개의 라인으로 구성되어
www.acmicpc.net
- 문제
- 예제
- 코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class p10448 {
static int[] arr; // 삼각수 값 저장할 배열 생성
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int t = Integer.parseInt(br.readLine()); // 테스트케이스 개수
arr = new int[45]; // k의 최댓값이 1000이므로, 삼각수 t45 이상은 불필요함
for (int i = 1; i <= 44; i++) { // 삼각수 값 배열에 저장
arr[i] = i * (i + 1) / 2;
}
for (int i = 0; i < t; i++) {
int k = Integer.parseInt(br.readLine());
int result = check(k); // 입력받은 k가 3개의 삼각수의 합으로 표현되는지 확인
System.out.println(result); // 리턴값 출력
}
}
public static int check(int k) {
for (int i = 1; i <= 44; i++) {
for (int j = 1; j <= 44; j++) {
for (int l = 1; l <= 44; l++) { // 모든 경우의 수 알아보기
if (arr[i] + arr[j] + arr[l] == k) { // 3개의 삼각수의 합으로 표현된다면, 1 리턴
return 1;
}
}
}
}
return 0; // 모든 경우의 수를 돌아도 표현되지 않는다면, 0 리턴
}
}
'백준 - JAVA' 카테고리의 다른 글
3085번 : 사탕 게임 (2) | 2023.08.21 |
---|---|
2503번 : 숫자 야구 (0) | 2023.08.17 |
2231번 : 분해합 (0) | 2023.08.16 |
15649번 : N과 M (1) (0) | 2023.08.10 |
5568번 - 카드 놓기 (0) | 2023.08.09 |