농담곰담곰이의곰담농

2309. 일곱 난쟁이

by 브이담곰

 

 

 

2309번: 일곱 난쟁이

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

www.acmicpc.net

✔  유형 : 조합(Combination), 누적 합(Perfix Sum)

✔  문제 풀이 : 재귀 함수를 이용해 조합을 구현하고 누적 합을 구한다.

 

✏ 예제를 이용해 디버깅을 해보았다. 

⬇️ 코드보기

더보기
// Online C++ compiler to run C++ program online
#include<bits/stdc++.h>
using namespace std;

vector <int> input;
vector <int> result;
int cnt = 0;
void print(vector<int> list)
{
    for(auto element : list)
    {
        cout << element << endl;
    }
    
   // cout << "\n";
}
void combi(int start, vector<int> array, int sum)
{
    if(array.size() == 7)
    {
        //print(array);
        cnt++;
       // cout<<sum<<endl;
        if(sum == 100)
        {
            result = array;
        }
        
        return;
    }
    
    for(int i = start + 1; i < 9 ; i++)
    {
        array.push_back(input[i]);
        combi(i, array, sum + input[i]);
        array.pop_back();
    }
    
    return;
}

int main() {
    vector<int> combination;
    
    for (int i = 0; i < 9; i++) { //벡터에 입력값 추가
    	int a;
        cin>>a;
		input.push_back(a);
	}
    
    sort(input.begin(), input.end());
    combi(-1, combination, 0);
    //cout<< "total :" << cnt << endl;
    
    //result
    print(result);
    return 0;
}

 

'Coding Test > Baekjoon' 카테고리의 다른 글

11655.ROT13  (1) 2023.11.21
1159.농구 경기  (0) 2023.11.21
10988.팰린드롬인지 확인하기  (0) 2023.11.21
2979. 트럭 주차  (0) 2023.11.21
10808.알파벳 개수  (0) 2023.11.21

블로그의 정보

농담곰담곰이의곰담농

브이담곰

활동하기