전체 방문자
오늘
어제
모달조아
Better than yesterday
모달조아
  • 분류 전체보기 (147)
    • PS (86)
      • BOJ (79)
      • 프로그래머스 (6)
    • 이론 (41)
      • 자료구조 (2)
      • 알고리즘 (8)
      • 데이터베이스 (1)
      • 운영체제 (1)
      • 네트워크 (3)
      • 디자인패턴 (7)
      • Java (13)
      • Spring (4)
      • JPA (1)
      • Git (1)
    • 개발 (18)
    • 프로젝트 (1)
    • 기록 (0)
      • 후기 (0)
    • etc (1)

최근 글

티스토리

hELLO · Designed By 정상우.
모달조아

Better than yesterday

PS/BOJ

BOJ 6603 로또

2021. 6. 25. 23:09

boj 6603 로또

숫자를 입력 받아 지정하고 그 갯수의 숫자 중 가능한 6개 조합을 모두 출력해야하는 문제이다. 백트레킹 기법을 이용하여 문제를 해결했다.

#include <iostream>
#include <vector>
using namespace std;

int k;
vector <int> s;
vector <int> l;

void func(int num)
{
    if (s.size() == 6)
    {
        for (int i = 0; i < 6; i++)
            cout << s[i] << ' ';

        cout << '\n';
        return;
    }

    for (int i = num; i < k; i++)
    {
        s.push_back(l[i]);
        func(i + 1);
        s.pop_back();
    }
}

int main(void)
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);

    while (cin >> k && k != 0)
    {
        l = vector <int>(k);
        for (int i = 0; i < k; i++) cin >> l[i];
        func(0);
        cout << '\n';
    }
}

백트래킹 기법의 재귀적인 부분이 이해는 되지만 크게 와닿지는 않는다. 조금 더 공부해야할 필요성을 느낀다.

저작자표시 (새창열림)

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

BOJ 11726 2xN 타일링  (0) 2021.06.28
BOJ 1920 수 찾기  (0) 2021.06.26
BOJ 2667 단지번호붙이기  (0) 2021.06.25
BOJ 11652 카드  (0) 2021.06.25
BOJ 1931 회의실 배정  (0) 2021.06.23
    'PS/BOJ' 카테고리의 다른 글
    • BOJ 11726 2xN 타일링
    • BOJ 1920 수 찾기
    • BOJ 2667 단지번호붙이기
    • BOJ 11652 카드
    모달조아
    모달조아

    티스토리툴바