반응형
LinkedIn 개발자로 성장하면서 남긴 발자취들을 확인하실 수 있습니다.
Github WWDC Student Challenge 및 Cherish, Tiramisul 등 개발한 앱들의 코드를 확인하실 수 있습니다.
개인 앱 : Cherish 내 마음을 들여다보는 시간, 체리시는 디자이너와 PM과 함께 진행 중인 1인 개발 프로젝트입니다.
10년 후, 20년 후 나는 어떤 스토리 텔러가 되어 있을지 궁금하다. 내가 만약에 아직 조금 더 탐구하고 싶은 게 있고, 궁금한 게 있다면, 그게 설사 지금 당장의 내 인생에 도움이 안 되는 것 같더라도 경험해보자. 그 경험들을 온전히 즐기며 내 것으로 만들고, 내 일에 녹여내고... 그러다보면 그 점들이 모여 나란 사람을 그려내는 선이 될 테니까.

Recent Posts
Recent Comments
Total
관리 메뉴

꿈꾸는리버리

[백준 알고리즘] 2798 블랙잭 본문

오뚝이 개발자/알고리즘

[백준 알고리즘] 2798 블랙잭

rriver2 2021. 12. 4. 11:53
반응형

 브루트 포스( Brute force) 

조합 가능한 모든 문자열을 하나씩 대입해 보는 방식으로 암호를 해독하는 방법.

: 영어로 brute는 "짐승 같은, 난폭한"이라는 뜻이고, brute-force는 "난폭한 힘, 폭력"이라는 뜻이다. 오래 걸리는 데다 자원이 엄청나게 들어서 얼핏 보면 무식하다고 생각할 수도 있겠지만, 항상 정확도 100%를 보장한다는 점에서 암호 해독법 중 가장 확실하고 무서운 방법이다. 

문제:   https://www.acmicpc.net/problem/2798

 

2798번: 블랙잭

첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장

www.acmicpc.net

풀이방법:    

1) 배열의 인덱스인 i,j,k를 1씩 증가시키면서 array[i] +array[j] +array[k] 배열의 합을 구한다.

k의 이동 범위는 j+1 ~ N-1까지

j의 이동 범위는 i+1 ~ N-2까지

i의 이동 범위는 0~ N-3까지

  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++){
            // 식 
            }
        }
}

 

2) 그 합이 지금까지 구한 합의 최댓값(max)보다 크면서, M보다 작을 경우 지금까지 max에 대입을 한다.

 sum = array[i] +array[j] +array[k];
 if( max < sum && sum <= M ){
 max = sum;
 }

3) for문이 끝나면 max를 출력한다.

작성한 코드는 다음과 같다. 

#include <iostream>
using namespace std;

int main() {
    int N,M;
    cin >> N>>M;
    int array[N];
    int max = 0;
    int sum;

    for(int i = 0; i< N; i++){
        cin >> array[i];
    }
  
    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 = array[i] +array[j] +array[k];
                if( max < sum && sum <= M ){
                    max = sum;
                }
            }
        }
    }
    
    cout << max<<"\n";
    
    return 0;
}

 

 

 

성공한 사진!    

  MEMO 

브루트 포스,,,😀  재귀를 하다와서 그런가 나는 이렇게 무식하게 다 돌리는 게 더 친숙한 것 같다.... 하지만 똑똑해질 거다 !!! 이제 백준 100제도 얼마 남지 않았다 화이팅하자!

반응형
Comments