티스토리 뷰

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

 

2309번: 일곱 난쟁이

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

www.acmicpc.net

 

C++ 정답소스

#include <iostream>
#include <algorithm>

using namespace std;

int solution(int sum, int *arr){
    for (int i = 0; i < 8; i++){
        for (int j = i + 1; j < 9; j++){
            if (sum - (arr[i] + arr[j]) == 100){
                arr[i] = -1;
                arr[j] = -1;
                return 0;
            }
        }
    }
}

int main() {
    ios::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    int arr[9], sum = 0;
    for (int i = 0; i < 9; i++){
        cin >> arr[i];
        sum += arr[i];
    }

    solution(sum, arr);
    sort(arr, arr + 9);

    for (int i = 2; i < 9; i++){
        cout << arr[i] << '\n';
    }
}

9개의 값 중 2개를 더 했을 때 (합계 - 100) 과 같은 값을 찾아 -1로 처리해준다.

출력 전, sort를 이용해 오름차순으로 정렬한 뒤 앞의 인덱스 2개는 제외하여 출력. 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
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
글 보관함