Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
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
more
Archives
Today
Total
관리 메뉴

도누쓰코딩죽이기

[백준] 6603 로또 본문

알고리즘CPR

[백준] 6603 로또

차도누 2020. 8. 2. 23:09

스터디 시작 후 첫 문제
지금 내 실력상태가 어떤지 다시 느낄 수 있었던 문제...

https://www.acmicpc.net/problem/6603

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

// 중복되면 안됨 -> 조합문제임 -> 조합문제 어캐 풀더라? -> 좋은 습관 굳굳
public class Main_6603 {

    static int[] num, lotto;
    static int k;
    public static void main(String[] args) throws Exception{

        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = null;

        while(true) {
            st = new StringTokenizer(in.readLine());

            k= Integer.parseInt(st.nextToken());

            if(k==0) {
                break;
            }

            num = new int[k];
            lotto = new int[6];
            for (int i = 0; i < k; i++) {
                num[i] = Integer.parseInt(st.nextToken());
            }

            dfs(0,0);
            System.out.println();

        }

    }
    private static void dfs(int cnt, int cur) {

        if(cnt==6) {
            for (int i = 0; i < 6; i++) {
                System.out.print(lotto[i]+" ");
            }
            System.out.println();
            return;
        }

        for (int i = cur; i < k; i++) {
            lotto[cnt]=num[i];
            dfs(cnt+1,i+1);
        }

    }

}

풀이

조합의 정석같은 문제였다. 근데 조합이 생각나지 않아서 10분은 고민한 듯. 헉헉
cnt와 cur 변수의 역할을 잘 기억하기만 하면 될 듯.

느낀점

일단 다시 감을 잡아야 겠다! 화이팅!

'알고리즘CPR' 카테고리의 다른 글

[백준] 2606 바이러스  (0) 2020.08.15
[백준] 14502 연구소  (0) 2020.08.08
[백준] 2178 미로 탐색  (0) 2020.08.08
[백준] 11403 경로 찾기  (0) 2020.08.04
알고리즘 심폐소생 시작  (0) 2020.08.02