본문 바로가기
백준 문제풀이

[백준][조합] 1940 주몽 c++구현

by 꽁이꽁설꽁돌 2024. 3. 30.
728x90
반응형

 

목차

     

     

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

     

    1940번: 주몽

    첫째 줄에는 재료의 개수 N(1 ≤ N ≤ 15,000)이 주어진다. 그리고 두 번째 줄에는 갑옷을 만드는데 필요한 수 M(1 ≤ M ≤ 10,000,000) 주어진다. 그리고 마지막으로 셋째 줄에는 N개의 재료들이 가진 고

    www.acmicpc.net

    문제

     

    문제 구현 방법

    이중 for문을 통해 구현을 하거나 재귀함수를 통해 구현해서 풀면 되는 문제이다.

     

     

    참고

    https://be-senior-developer.tistory.com/49

     

    순열과 조합 c++ 구현

    목차 c++로 순열과 조합을 어떻게 구현하는지에 대해 알아보자 stl로 구현한 순열 #include #include #include using namespace std; int main() { vector v; v.push_back(1); v.push_back(2); v.push_back(3); sort(v.begin(), v.end()); //

    be-senior-developer.tistory.com

     

     

     

    코드 구현

    #include <iostream>
    #include<vector>
    #include<algorithm>
    
    
    using namespace std;
    
    vector<int> v;
    vector<int> comb;
    int M, sum=0;
    void make_permutaion(int start, int k) {
    	if (comb.size() == k) {
    		if (comb[0] + comb[1] == M) {
    			sum++;
    			return;
    		}
    			
    		else {
    			return;
    		}
    		
    	}
    	for (int i = start+1; i < v.size(); i++) {
    		comb.push_back(v[i]);
    		make_permutaion(i, k);
    		comb.pop_back();
    	}
    }
    
    int main() {
    	ios_base::sync_with_stdio(false);
    	cin.tie(0);
    	cout.tie(0);
    	int N, num;
    	cin >> N;
    	cin >> M;
    	for (int i = 0; i < N; i++) {
    		cin >> num;
    		v.push_back(num);
    	}
    	 make_permutaion(-1, 2);
    	cout << sum;
    }
    반응형