티스토리 뷰

Algorithm/BOJ

백준 6603번 C++

poopooreum 2023. 8. 21. 14:13
반응형
백준 6603번 로또

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

6603번: 로또

입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있다. 첫 번째 수는 k (6 < k < 13)이고, 다음 k개 수는 집합 S에 포함되는 수이다. S의 원소는 오름차순으로

www.acmicpc.net



정답 코드

#include<iostream>
using namespace std;
int arr[13];
int arr2[14];
int n, m;
void abc(int a, int b);
int main() {
	
	while (1){
		cin >> n;
	if (n == 0)
		break;
	for (int x = 0; x < n; x++)
		cin >> arr[x];
	abc(0, 0);
       cout<<"\n";
}
}
void abc(int a, int b) {
	if (a == 6) {
		for (int x = 0; x < 6; x++)
			cout << arr2[x] << " ";
			cout << "\n";
		return;
	}
	for (int x = b; x < n; x++) {
			arr2[a] = arr[x];
			abc(a + 1, x + 1);			
	}
}

문제 풀이

백트래킹을 이용해서 풀었습니다. 백트래킹을 쉽게 생각해보면 경우의 수를 트리 구조로 나열했을때 가장 아래에 있는 자식트리를 하나씩 출력해준다고 생각하면 될 것 같아요. 느낌은 N과M문제랑 비슷했어요. 백트래킹도 알고리즘 정리해서 게시물로 올려볼게요.

반응형

'Algorithm > BOJ' 카테고리의 다른 글

백준 7287번 C++  (0) 2023.08.21
백준 6718번 C++  (0) 2023.08.21
백준 6593번 C++  (0) 2023.08.21
백준 6588번 C++  (0) 2023.08.21
백준 6219번 C++  (0) 2023.08.21
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함