도누쓰코딩죽이기
[백준] 6603 로또 본문
스터디 시작 후 첫 문제
지금 내 실력상태가 어떤지 다시 느낄 수 있었던 문제...
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 |