BOJ 6603. 로또 문제 출처 1. 문제설명 문제 설명은 매우 장황하지만 N개의 수가 주어졌을 때, 모든 조합을 구하는 것이다. 2. 알고리즘 설계 오름차순이므로, 1부터 시작하다가 6개가 카운팅되면 출력해주면 된다. 3. 로직 DFS 방식을 이용해 구현하였다. 배열 6칸에 값을 순차적으로 채우면서, 카운팅과 현재 인덱스를 갱신시켜준다. 4. 전체 코드 #include <bits/stdc++.h> using namespace std; int n, lotto[14], ans[6]; void dfs(int start, int depth) { if (depth == 6) { for (int i = 0; i < 6; i++) cout << ans[i] << ' '; cout << '\n'; return; } for (int i = start; i < n; i++) { ans[depth] = lotto[i]; dfs(i + 1, depth + 1); } } int main(void) { ios::sync_with_stdio(false); cin.tie(NULL); while (cin >> n && n) { for (int i = 0; i < n; i++) cin >> lotto[i]; dfs(0, 0); cout << '\n'; } return 0; } Posted on May 18, 2023