본문 바로가기
백준/완전탐색

백준 6603. 로또

by 29살아저씨 2021. 8. 26.
반응형

🅰 백준 6603. 로또

 

6603번: 로또

입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있다. 첫 번째 수는 k (6 < k < 13)이고, 다음 k개 수는 집합 S에 포함되는 수이다. S의 원소는 오름차순으로

www.acmicpc.net

✏️ 문제 풀이

  • 재귀를 이용한 조합을 이용하여 풀었다.

✏️ 소스코드

package bruteforce;

import java.util.*;
import java.io.*;

public class Main_실버2_6603_손은성 {
	static int R = 6;
	static int N, ans[] = new int[R];
	static StringBuilder sb = new StringBuilder();
	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		while (true) {
			StringTokenizer st = new StringTokenizer(br.readLine());
			N = Integer.parseInt(st.nextToken());
			int input[] = new int[N];
			// 0이면 종료
			if (N == 0)
				break;

			for (int i = 0; i < N; i++) {
				input[i] = Integer.parseInt(st.nextToken());
			}
			
			comb(input, 0, 0);
			System.out.println();
		}
	}

	private static void comb(int[] input, int cnt, int start) {
		if (cnt == R) {
			for (int i : ans) {
				sb.append(i+" ");
			}
			System.out.println(sb);
			sb.setLength(0);
			return;
		}

		for (int i = start; i < N; i++) {
			ans[cnt] = input[i];
			comb(input, cnt + 1, i + 1);
		}
	}
}

 

✅ 후기

  • 이런 문제들은 보면 어떤식으로 접근해야 하는지 어느정도 감이 온다. 전에는 하나도 몰랐는데 공부를 하면 할 수록 문제를 보는 눈이 달라지는것 같아서 뿌듯하다.
반응형

'백준 > 완전탐색' 카테고리의 다른 글

백준 1697. 숨바꼭질  (0) 2021.08.26
백준 1182. 부분수열의 합  (0) 2021.08.26
백준 10971. 외판원 순회 2  (0) 2021.08.26
백준 10819. 차이를 최대로  (0) 2021.08.26
백준 9095. 1, 2, 3 더하기  (0) 2021.08.26

댓글