(백준 알고리즘 문제풀이) 6603번 로또
by 줌코딩
문제
어떻게 접근할 것인가
- 고민하다가 DFS를 이용하기로 했다.
- 사이즈가 6인 어레이를 하나 만들고 DFS를 이용해서 숫자를 어레이를 하나 넣어주면서 6개가 차면 이를 출력한다.
코드
#include <cstdio>
int v[6], arr[50], k;
void dfs(int begin, int cnt){
if(cnt == 6){
for(int i = 0; i < 6; i++)printf("%d ", v[i]);
printf("\n");
return;
}
for(int i = begin; i < k; i++){
v[cnt] = arr[i];
dfs(i + 1, cnt + 1);
}
}
int main(){
while(1){
scanf("%d", &k);
if(k == 0)break;
for(int i = 0; i < k; i++)scanf("%d", &arr[i]);
dfs(0, 0);
printf("\n");
}
}
느낀점
- 혹시나 해서 돌려봤는데 됐다 ㅎㅎ
- 그래도 리컬시브의 개념에 대해서 어느정도 잡은거 같다!!
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
Subscribe via RSS