백준 6603

HR·2022년 6월 1일
0

알고리즘 문제풀이

목록 보기
34/50

백준 6603 : 로또

  1. 조합으로 풀면 된다
  2. s개 중 k개를 선택해서 출력

정답 코드

#include <iostream>
#include <algorithm>

using namespace std;

int k, s[50];
int idx[7];

void printNums() {
	for(int i=0; i<6; i++) {
		cout<<s[idx[i]]<<' ';
	}
	cout<<'\n';
}

void combi(int start, int cnt) {
	if(cnt == 6) {
		printNums();
		return;
	}
	
	for(int i=start+1; i<k; i++) {
		idx[cnt] = i;
		combi(i, cnt+1);
	}
	
	return;
}


int main() {	
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);
	
	while(1) {
		cin>>k;
		
		if(k==0) break;
		
		for(int i=0; i<k; i++) {
			cin>>s[i];
		}
				
		combi(-1, 0);
		
		cout<<'\n';		
	}

	return 0;
}

* 로컬에서 할 때는 빠른 입출력 (sync with stdio)를 제거해야 정상적으로 출력된다! 제출할때는 상관없음

0개의 댓글