[Algorithm #01] 2309 - 일곱난쟁이 (C++)

이석환·2023년 4월 2일

Algorithm

목록 보기
2/16

1. 문제 해결 전략

  1. sort() 함수를 사용하여 입력받은 난쟁이들을 오름차순으로 정렬
  2. 9명 중 7명을 뽑아 키의 합이 100이 되는 경우 멈추고 출력 -> next_permutation() 사용

2. 코드

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

vector<int> child;

void init_child() {
    int x;
    for (int i = 0; i < 9; i++) {
        cin >> x;
        child.push_back(x);
    }
    sort(child.begin(), child.end());
}

void print_child() {
    for (int i = 0; i < 7; i++) {
        cout << child[i] << "\n";
    }
}

int main(void) {
    init_child();
    int result;
    do {
        result = 0;
        for (int i = 0; i < 7; i++) {
            result += child[i];
        }
        if (result == 100)
            break;
    } while (next_permutation(child.begin(), child.end()));
    print_child();
    return 0;
}

3. 소감

순열 처음 사용해보았다.
몇 번 더 연습이 필요함.

profile
반갑습니다.

0개의 댓글