Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 포스코 ai 교육
- 자료구조
- BFS
- sort
- DP
- bfs문제
- 딥러닝
- TensorFlow Lite
- 다이나믹프로그래밍
- 컴퓨팅사고
- dfs
- DP문제
- tinyml
- 포스코 AI교육
- 코테
- 삼성역테
- 그리디
- 포스코 교육
- tflite
- 영상처리
- 코딩테스트
- 삼성코테
- 초소형머신러닝
- 임베디드 딥러닝
- 코테 문제
- dfs문제
- MCU 딥러닝
- 알고리즘
- 삼성코딩테스트
- 삼성역량테스트
Archives
- Today
- Total
코딩뚠뚠
[백준문제풀이] 6603 로또 본문
반응형
풀이일시 : 2020-12-23
문제 :
독일 로또는 {1, 2, ..., 49}에서 수 6개를 고른다.
로또 번호를 선택하는데 사용되는 가장 유명한 전략은 49가지 수 중 k(k>6)개의 수를 골라 집합 S를 만든 다음 그 수만 가지고 번호를 선택하는 것이다.
예를 들어, k=8, S={1,2,3,5,8,13,21,34}인 경우 이 집합 S에서 수를 고를 수 있는 경우의 수는 총 28가지이다. ([1,2,3,5,8,13], [1,2,3,5,8,21], [1,2,3,5,8,34], [1,2,3,5,13,21], ..., [3,5,8,13,21,34])
집합 S와 k가 주어졌을 때, 수를 고르는 모든 방법을 구하는 프로그램을 작성하시오.
입력 :
입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있다. 첫 번째 수는 k (6 < k < 13)이고, 다음 k개 수는 집합 S에 포함되는 수이다. S의 원소는 오름차순으로 주어진다.
입력의 마지막 줄에는 0이 하나 주어진다.
ex)
7 1 2 3 4 5 6 7
0
출력 :
각 테스트 케이스마다 수를 고르는 모든 방법을 출력한다. 이때, 사전 순으로 출력한다.
각 테스트 케이스 사이에는 빈 줄을 하나 출력한다.
ex)
1 2 3 4 5 6
1 2 3 4 5 7
1 2 3 4 6 7
1 2 3 5 6 7
1 2 4 5 6 7
2 3 4 5 6 7
풀이 :
input을 받아서 완전탐색을 해주는데 이 완전탐색은 재귀를 이용해준다.
배열의 크기가 6이 되면 출력시키게끔 한다.
//꼭 6개의 숫자를 골라야한다. 주어진 수 중에서.
#define MAX 6
#include <iostream>
#include <string.h>
using namespace std;
int k, input[13];
int result[MAX];
void print(int a, int b) { //재귀를 이용한 완전탐색으로 해결
if (b == MAX) { //6개 만들면 출력하고 탈출
for (int i = 0; i < MAX; i++) {
cout << result[i] << " ";
}
cout << endl;
return;
}
for (int i = a; i < k; i++) {
result[b] = input[i];
print(i + 1, b + 1);
}
}
int main() {
cin >> k;
while (k != 0) {
for (int i = 0; i < k; i++) {
cin >> input[i]; //7~12 입력가능
}
print(0, 0);
cout << endl;
memset(input, 0, sizeof(input));
memset(result, 0, sizeof(result));
cin >> k;
}
return 0;
}
반응형
'알고리즘 문제풀이 > 백준문제풀이' 카테고리의 다른 글
[백준문제풀이] 2003 수들의 합 2 (0) | 2021.01.03 |
---|---|
[백준문제풀이] 1182 부분수열의 합 (0) | 2021.01.03 |
[백준문제풀이] 18352 특정 거리의 도시 찾기 (0) | 2021.01.03 |
[백준문제풀이] 2873 롤러코스터 (0) | 2021.01.02 |
[백준문제풀이] 1987 알파벳 (0) | 2021.01.02 |