백준 5568 c++

magicdrill·2024년 6월 28일

백준 문제풀이

목록 보기
379/673

백준 5568 c++

next_permutation()을 통해 조합을 만드는 방법에 대해서 또 다시 공부해야겠다.

#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <set>

using namespace std;

void input_card(vector<int>& card, int *num)
{
	int N, i, temp;

	cin >> N;
	cin >> *num;
	for (i = 0; i < N; i++)
	{
		cin >> temp;
		card.push_back(temp);
	}
	sort(card.begin(), card.end());

	return;
}

void find_answer(vector<int>& card, int num)
{
	set<string> answer;
	int ans, i;

	do {
		string str;
		for (i = 0; i < num; i++)
		{
			str += to_string(card[i]);
		}
		answer.insert(str);
	} while (next_permutation(card.begin(), card.end()));
	ans = answer.size();
	cout << ans << "\n";

	return;
}

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

	vector<int> card;
	int num;

	input_card(card, &num);
	find_answer(card, num);

	return 0;
}

0개의 댓글