무지성 공부방/알고리즘 해결
[BOJ_C++] 2798번 : 블랙잭
hyerang0125
2021. 3. 3. 21:41
- 문제
- 풀이
#include <iostream>
using namespace std;
int main(){
int n, m;
cin >> n >> m;
int num[100];
for(int i=0; i<n; i++)
cin >> num[i];
int max = 0, sum;
for(int i=0; i<n; i++){
for(int j=i+1; j<n; j++){
for(int k=j+1; k<n; k++){
sum = num[i]+num[j]+num[k];
if(max<sum && sum<=m)
max = sum;
}
}
}
cout << max;
return 0;
}
- N개의 숫자를 배열로 입력받는다.
- 각 숫자를 더해서 나올 수 있는 모든 경우의 수를 계산한다. (3중 for문을 사용하여 i번째 j번째 k번째의 값을 더한 sum을 계산한다.)
- 만약 max보다 크고, M보다 작다면 max에 sum 값을 넣어 준다.