[BOJ-Code] 2798 - 블랙잭

Posted by DHniyeo Blog on March 10, 2024

문제 링크

💡 브루트포스 알고리즘

Memory 1112KB Time 0ms Code Length 435B

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>

int n, m;

int main()
{
	scanf("%d %d", &n, &m);
	int arr[100];
	for (int i = 0; i < n; i++) {
		scanf(" %d", &arr[i]);
	}
	int max = 0;
	for (int i = 0; i < n - 2; i++) {
		for (int j = i + 1; j < n - 1; j++) {
			for (int k = j + 1; k < n; k++) {
				if (arr[i] + arr[j] + arr[k] > m) continue;
				if (max < arr[i] + arr[j] + arr[k]) {
					max = arr[i] + arr[j] + arr[k];
				}
			}
		}
	}
	printf("%d", max);
}

이 코드는 세 개의 정수를 입력받아 배열에 저장한 후, 세 개의 수를 더하여 합이 입력받은 수보다 작은 경우 중에서 최대값을 찾아 출력하는 프로그램이다. 처음에는 세 개의 정수를 입력받고 배열에 저장하고, 그 후에 중첩된 반복문을 사용하여 모든 가능한 세 개의 수의 조합을 확인한다. 세 개의 수를 더한 값이 입력받은 수보다 작은 경우에만 최대값을 업데이트하고, 마지막에 최대값을 출력한다.