[백준] 6603번 : 로또

박개발·2021년 9월 18일
0

백준

목록 보기
3/75

문제 푼 날짜 : 2021-09-18

문제

문제 링크 : https://www.acmicpc.net/problem/6603

접근 및 풀이

간단한 백트래킹 문제였다.
주어진 배열에서 6개의 숫자를 선택하는 조합을 구현해주었다.

코드

// 백준 6603번 : 로또
#include <iostream>
#include <vector>

using namespace std;

vector<int> v(13), ret(6);
int k;

void dfs(int cnt, int pos) {
    if (cnt == 6) {
        for (int i = 0; i < 6; i++) {
            cout << ret[i] << ' ';
        }
        cout << '\n';
        return;
    }

    for (int i = pos; i < k; i++) {
        ret[cnt] = v[i];
        dfs(cnt + 1, i + 1);
    }
}

int main() {
    while (true) {
        cin >> k;
        if (k == 0) {
            return 0;
        }
        for (int i = 0; i < k; i++) {
            cin >> v[i];
        }
        dfs(0, 0);
        cout << '\n';
    }
}

결과

피드백

백트래킹적 구현 패턴에 익숙해지도록 더욱 문제를 많이 풀어봐야겠다.

profile
개발을 잘하고 싶은 사람

0개의 댓글