728x90
본 알고리즘 풀이는 Routine Study에서 진행하고 있습니다.
저를 포함한 구성원이 대부분 초보이므로, 원하시는분은 언제라도 들어오셔도 좋습니다.
문의는 댓글 바람.
문제 출처 : https://www.acmicpc.net/problem/10448
[문제 설명]
Tn이 1부터 n까지의 등차수열의 합이고, A가 주어졌을 때 A = Ta + Tb + Tc이면 1을 출력 아니면 0을 출력하라.
[접근 방법]
완전탐색으로 모든 경우의 수를 조회해보기
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
class Main {
static int N;
static int[] providedNumbers;
static int[] triangleNums = new int[1001];
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
N = Integer.parseInt(br.readLine());
providedNumbers = new int[N];
for (int i = 0; i < N; i++) providedNumbers[i] = Integer.parseInt(br.readLine());
for (int i = 1; i < triangleNums.length; i++) triangleNums[i] = ((i)*(i+1))/2;
for (int providedNumber : providedNumbers) {
boolean isAnswerd = false;
for (int i = 1; i < triangleNums.length; i++) {
if (triangleNums[i] > providedNumber) break;
for (int j = 1; j < triangleNums.length; j++) {
if (triangleNums[i] > providedNumber - triangleNums[j]) break;
for (int k = 1; k < triangleNums.length; k++) {
if (triangleNums[i] == providedNumber - triangleNums[j] - triangleNums[k]) {
System.out.println(1);
isAnswerd = true;
break;
}
}
if (isAnswerd) break;
}
if (isAnswerd) break;
}
if (!isAnswerd) System.out.println(0);
}
}
}
728x90
반응형
'알고리즘 문제 풀이 > 완전탐색' 카테고리의 다른 글
백준 - 영화감독 숌 (0) | 2021.12.25 |
---|---|
백준 - 체스판 다시 칠하기 (0) | 2021.12.25 |
백준 - 암호 만들기 (0) | 2021.12.12 |
백준 - 한수 (0) | 2021.12.12 |
프로그래머스 - 소수 만들기 (0) | 2021.11.25 |