반응형
https://www.acmicpc.net/problem/2798
2798번: 블랙잭
문제 카지노에서 제일 인기 있는 게임 블랙잭의 규칙은 상당히 쉽다. 카드의 합이 21을 넘지 않는 한도 내에서, 카드의 합을 최대한 크게 만드는 게임이다. 블랙잭은 카지노마다 다양한 규정이 ��
www.acmicpc.net
[ 코드 ]
#include <iostream>
#include <vector>
using namespace std;
int main(){
int N, M, temp;
int sum = 0;
int close = 0;
vector <int> card;
cin >> N >> M;
for(int i=0; i<N; i++){
cin >> temp;
card.push_back(temp);
}
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++){
sum = card[i]+card[j]+card[k];
if(sum<=M && sum>close){
close = sum;
}
}
}
}
cout << close << endl;
return 0;
}
브루트포스 알고리즘 문제!
브루투포스란?
가장 간단한 알고리즘인, 모든 경우의 수를 검사하는 알고리즘.
이라고 백준에 명시되어있다. ㅎㅎ
정말 말그대로 무식하게 모든 경우의 수를 머리 속으로 생각하는 대로 옮기면 되는 알고리즘.
for문에서 N-2, N-1, N으로 그 뒤에 남아있는 카드 뽑아야하는 양을 체크해서 더 경우를 줄인건데
사실 그냥 N이라고 해도 알고리즘은 풀린다.
※ 오늘의 교훈
이 문제를 풀면서 습관적으로 int i, int j, int k로 지정하는 부분에서
첫번 째 선언문 부분은 잘 써놓고 조건문, 증감문에서 i로 써서 오류가 났는데 그걸 찾느라 정말 한참이 걸렸다.
간단한 실수를 줄이도록 노력해야겠다...!
반응형
'Algorithm > 백준' 카테고리의 다른 글
[백준] 10866번 : 덱 / c++ (0) | 2020.05.29 |
---|---|
[백준] 1436번 : 영화감독 숌 / c++14 (0) | 2020.05.27 |
[백준] 1966번 : 프린터 큐 / c++ (0) | 2020.05.25 |
[백준] 1874번 : 스택 수열 / c++ (0) | 2020.05.22 |
[백준] 10828번 : 스택 / c++ (0) | 2020.05.22 |