조합 4

백준(BOJ) 6603 : 로또 (실버3) / 자바(Java) 풀이

문제https://www.acmicpc.net/problem/66033줄 요약이 코드는 재귀 함수 recursion을 활용하여 주어진 집합 S에서 크기가 6인 조합을 사전순으로 생성하고 출력하는 문제를 해결합니다.재귀 함수 recursion은 현재 선택한 숫자의 개수(depth)와 인덱스(idx)를 매개변수로 받아, 조합을 생성합니다.선택한 숫자의 개수가 6이 되면 선택한 숫자를 출력하고 종료합니다.현재 인덱스의 숫자를 선택하는 경우와 선택하지 않는 경우로 나누어 재귀 호출을 수행하며, 이를 통해 모든 가능한 조합을 탐색합니다.조합을 사전순으로 생성하기 위해, 현재 인덱스(idx)를 조정합니다.현재 인덱스의 숫자를 선택하는 경우, 다음 재귀 호출에서는 idx + 1을 전달하여 다음 인덱스부터 조합을 생성..

Problem_Solving 2024.05.12

백준(BOJ) 14889 : 스타트와 링크 (자바, JAVA)

14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net 설계 N명의 사람을 두 팀으로 나누어, 각 팀의 능력치 합의 차이가 최소가 되도록 팀을 구성하는 문제를 해결. 사람들 간의 능력치는 2차원 배열 arr에 저장되며, 각 팀 구성은 boolean 배열 tmp로 나타냄. combinate 메소드는 재귀적으로 모든 팀 조합을 생성하고, 각 조합에 대한 능력치 차이를 계산하여 최소 차이 power를 찾음. 코드 실행이 완료되면, 최소 능력치 차이를 출력. 구현 코드 // package boj14889; // 패키지 선언 // import ja..

Problem_Solving 2024.01.04

백준(BOJ) 2798 : 블랙잭 (자바, JAVA)

2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net 설계 카드 게임에서 N장의 카드 중 3장을 고르는 조합을 만들어 M에 가장 가까운 합을 구하는 문제를 해결 조합을 재귀적으로 구성하며, 각 조합의 합이 M을 넘지 않는 범위 내에서 최대값을 찾아 sum에 저장 모든 조합을 탐색한 뒤, 최종적으로 M에 가장 가까운 합인 sum을 출력 구현 코드 // package boj2798; // 패키지 선언 //import java.util.Arrays; // Arrays 클래스 사용을 위한 ..

Problem_Solving 2024.01.04

백준(BOJ) 6603 : 로또 (자바, JAVA)

6603번: 로또 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있다. 첫 번째 수는 k (6 < k < 13)이고, 다음 k개 수는 집합 S에 포함되는 수이다. S의 원소는 오름차순으로 www.acmicpc.net 설계 로또 번호들을 입력 받아 가능한 모든 조합을 출력 사용자로부터 입력받은 숫자들 중 6개를 선택하는 모든 조합을 찾아서 출력하는데, 입력이 ‘0’일 때 프로그램을 종료 combinate 함수는 재귀적으로 조합을 생성하며, 각 단계에서 숫자를 선택하거나 선택하지 않는 두 가지 경우를 고려하여 모든 가능한 조합을 탐색 구현 코드 // package boj6603; // 패키지 선언 // import java.util.Arrays; // Arrays 클..

Problem_Solving 2023.12.29