코딩고치

[백준][브루트 포스] 일곱난쟁이 본문

백준 알고리즘 기초/브루트 포스

[백준][브루트 포스] 일곱난쟁이

코딩고치 2020. 4. 1. 21:38

1. 문제 주소

https://www.acmicpc.net/problem/2309

 

2309번: 일곱 난쟁이

아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다.

www.acmicpc.net

2. 문제

9명 난쟁이의 키를 입력받은 후 키의 합을 구한 다음에 난쟁이가 아닌 2명을 찾아서 제외를 하면 된다. 키의 합에서 두 명의 난쟁이 키를 빼서 100이 나오는 조건으로 for문을 구성하였다.

3. 소스코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <iostream>
#include <vector>
using namespace std;
 
int main() {
    vector<int> dwarf(9);
    int sum_tall = 0;
 
    for (int i = 0; i < 9; i++) {
        cin >> dwarf[i];
        sum_tall += dwarf[i];
    }
    
    for (int i = 0; i < 8; i++) {
        for (int j = i + 1; j < 9; j++) {
            if (dwarf[j] < dwarf[i]) {
                int temp = dwarf[j];
                dwarf[j] = dwarf[i];
                dwarf[i] = temp;
            }
        }
    }
 
    for (int i = 0; i < 9; i++) {
        for (int j = i + 1; j < 9; j++) {
            if (sum_tall - dwarf[i] - dwarf[j] == 100) {
                for (int k = 0; k < 9; k++) {
                    if (k != i && k != j) {
                        cout << dwarf[k] << '\n';
                    }
                }
                return 0;
            }
        }
    }
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
 
Comments