알고리즘/BOJ

백준 2309번 일곱난쟁이

꾸준함. 2018. 6. 16. 03:04

문제 링크입니다: https://www.acmicpc.net/problem/2309


9명의 난쟁이의 합을 우선 구하고 두명의 난쟁이의 키를 뺐을 때 최초로 합이 100이된 경우를 출력해주면 되는 간단한 브루트포스 문제였습니다.


#include <iostream>

#include <vector>

#include <algorithm>

using namespace std;

 

const int MAX = 9;

 

vector<int> dwarfHeight;

int sum = 0;

 

void snowWhite(void)

{

        for (int i = 0; i < 9; i++)

        {

                 for (int j = i + 1; j < 9; j++)

                 {

                         //9명 난쟁이 합 중 두명의 난쟁이 합을 뺐을 때 100이 되면

                         if (sum - dwarfHeight[i] - dwarfHeight[j] == 100)

                         {

                                 for (int k = 0; k < 9; k++)

                                          if (k != i && k != j)

                                                  cout << dwarfHeight[k] << endl;

                                 return;

                         }

                 }

        }

}

 

int main(void)

{

        for (int i = 0; i < MAX; i++)

        {

                 int temp;

                 cin >> temp;

                 dwarfHeight.push_back(temp);

                 sum += temp; //모든 난쟁이 합을 우선 구한다

        }

        sort(dwarfHeight.begin(), dwarfHeight.end()); //미리 정렬

       

        snowWhite();

 

        return 0;

}


개발환경:Visual Studio 2017


지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

 

반응형

'알고리즘 > BOJ' 카테고리의 다른 글

백준 1256번 사전  (0) 2018.06.17
백준 1182번 부분집합의 합  (0) 2018.06.16
백준 15720번 카우버거  (0) 2018.06.15
백준 1916번 최소비용 구하기  (0) 2018.06.15
백준 13703번 물벼룩의 생존확률  (0) 2018.06.15