티스토리 뷰

문제


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


풀이과정


아홉명의 난쟁이 중에 진짜 난쟁이 일곱명을 추려내는 문제이다. 일곱 난쟁이의 키의 합은 100이라는 사실을 이용해 풀이하면 된다. 9명 중 2명을 선택해 난쟁이가 아니라고 생각하고 나머지 7명의 키 합이 100이면 된다.

9명 중 2명을 선택하는 경우의 수가 36가지 이므로 완전 탐색으로 풀었다.

코드가 더러운 것 같다. 불필요한 과정을 생각해서 코드를 깔끔하게 바꾸는 연습도 해야겠다.


소스코드


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
37
38
39
40
41
42
43
44
45
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
 
int height[9], result;
int index1, index2;
vector<int> ans;
 
int main()
{
    cin.sync_with_stdio(false);
 
    for (int i = 0; i < 9; i++)
    {
        cin >> height[i];
        result += height[i];
    }
 
 
    for (int i = 0; i < 9; i++)
    {
        for (int j = 0; j < 9; j++)
        {
            if (i != j && (result - height[i] - height[j]) == 100)
            {
                index1 = i; index2 = j;
                break;
            }
        }
    }
 
    for (int i = 0; i < 9; i++)
    {
        if (index1 != i && index2 != i)
            ans.push_back(height[i]);
    }
 
    sort(ans.begin(), ans.end());
 
    for (int i = 0; i < ans.size(); i++)
        cout << ans[i] << "\n";
 
    return 0;
}
cs


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

[백준] 2193번 이친수  (0) 2018.01.03
[백준] 11057번 오르막 수  (0) 2018.01.03
[백준] 11502번 붕어빵 판매하기  (0) 2017.12.29
[백준] 10844번 쉬운 계단 수  (0) 2017.12.28
[백준] 1932번 숫자삼각형  (0) 2017.12.27
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
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
글 보관함