문제 링크: https://www.acmicpc.net/problem/2798
백준 브루트 포스 1단계 - 2798번 블랙잭을 풀어보았다.
풀이: 카드 세 장을 골라 그 합이 입력값과 최대한 비슷하게 만들면 된다.
C++
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int n,m,inp;
cin>>n>>m;
int mcheck=0;
vector<int> v;
for(int i=0;i<n;i++)
{
cin>>inp;
v.push_back(inp);
}
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++)
{
int nmcheck=v[i]+v[j]+v[k];
if(nmcheck<=m&&mcheck<nmcheck) mcheck=nmcheck;
}
}
}
cout<<mcheck;
}
Python
n,m=map(int,input().split())
maxs=0 # m과 가장 비슷한 값
cards=list(map(int,input().split()))
for i in range(0,n-2):
for j in range(i+1,n-1):
for k in range(j+1,n):
nmaxs=cards[i]+cards[j]+cards[k] # 세개끼리 더해 비교
if nmaxs<=m and maxs<nmaxs: maxs=nmaxs
print(maxs)
Java
'코테용 문제풀이 > 백준' 카테고리의 다른 글
덩치 풀이 (0) | 2023.01.06 |
---|---|
분해합 풀이 (0) | 2023.01.06 |
하노이 탑 이동 순서 풀이 (0) | 2023.01.05 |
별 찍기 - 10 풀이 (0) | 2023.01.05 |
알고리즘 수업 - 병합 정렬 1 풀이 (0) | 2023.01.05 |