https://www.acmicpc.net/problem/6603
자~ 독일 로또를 가져왔다
이제 순열을 주구장창 풀어봤다면
딱봐도 아하 순열문제구나?
그럼 이제
아하? 우리가 풀던데로 풀면 되겠구나?
그럼 너무쉽구나?
#include <iostream>
#include <cmath>
#include <algorithm>
#include <vector>
using namespace std;
bool visited[10];
long arr[49];
vector<int> v;
void task(int n, int depth);
int main()
{
int n = 1;
while (n != 0)
{
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> arr[i];
}
task(n, 0);
cout << "\n";
}
}
void task(int n, int depth)
{
if (depth == 6)
{
for (int i = 0; i < 6; i++)
cout << v[i] << " ";
cout << "\n";
return;
}
for (int i = 0; i < n; i++)
{
if (!visited[i] && (v.empty() || v.back() < arr[i]))
{
visited[i] = true;
v.push_back(arr[i]);
task(n, depth + 1);
v.pop_back();
visited[i] = false;
}
}
}
배열에 로또 번호를 담고
모든 순열을 확인하면 되네?
하지만 오름차순으로 가야되니까
if (!visited[i] && (v.empty() || v.back() < arr[i]))
중복된 숫자 x , 오름차순
중복된 숫자 x , 오름차순
https://lee-soo.tistory.com/18
[DFS] 백준 15652번 N과 M (4,5,6) (C++)
https://www.acmicpc.net/problem/15652 해당 문제를 풀기전 1,2,3을 풀고오길 바란다https://lee-soo.tistory.com/17 [DFS] 백준 15649번 N과 M (1,2,3) (C++)https://www.acmicpc.net/problem/15649 이 문제를 풀면서 나에게도 큰 시
lee-soo.tistory.com
이해가 안된다면 앞선 문제들을 풀고와라
'코딩 테스트 준비! (백준) > DFS' 카테고리의 다른 글
[DFS] 백준 14501번 퇴사(C++) (0) | 2025.04.11 |
---|---|
[DFS] 백준 1759번 암호 만들기 (C++) (0) | 2025.04.10 |
[DFS] 백준 10819번 차이를 최대로 (C++) (0) | 2025.04.09 |
[DFS] 백준 10971번 외판원 순회2(C++) (0) | 2025.04.09 |
[DFS] 백준 15652번 N과 M (4,5,6) (C++) (0) | 2025.04.08 |