Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 순열
- 피보나치 수
- SSAFY
- 빠른 입출력
- 시뮬레이션
- 세그먼트 트리
- 분할 정복
- 스택
- BFS
- 클래스
- dfs
- 재귀
- 우선순위 큐
- 중복 순열
- 그리디
- 이분 탐색
- Knapsack
- 링크드리스트
- MST
- 완전 탐색
- 큐
- 크루스칼
- DP
- 조합
- BeautifulSoup
- lis
- 비트마스크
- 문자열
- 백트래킹
- 메모리풀
Archives
- Today
- Total
작심 24/7
[백준] 15652번 N과 M - 4 (C++, JAVA) 본문
15652번: N과 M (4)
한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해
www.acmicpc.net
N개 중에 중복 포함, 순서 상관없이 M개를 뽑는 중복 조합 문제이다.
앞의 값보다 크거나 같은 값일 경우에만 벡터에 넣어주고 카운트가 M일 때 출력해주면 된다.
< C++ 코드 >
#include <iostream>
#include <vector>
using namespace std;
vector <int> v;
int cnt = 0;
void multiCombination(int N, int M, int start) {
if (cnt == M) {
for (int i = 0; i < v.size(); i++) {
cout << v[i] << " ";
}
cout << "\n";
}
else {
for (int i = 0; i < N; i++) {
if (start <= i) {
v.push_back(i + 1);
cnt++;
multiCombination(N, M, i);
v.pop_back();
cnt--;
}
}
}
}
int main() {
int N, M;
cin >> N >> M;
multiCombination(N, M, -1);
return 0;
}
< JAVA 코드 >
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class BOJ_15652_N과M_4 {
private static StringBuilder sb = new StringBuilder();
private static int N, M;
private static int arr[];
public static void combination(int cnt, int idx) {
if(cnt == M) {
for(int val : arr) sb.append(val).append(' ');
sb.append('\n');
return;
}
for(int i = idx; i < N; i++) {
arr[cnt] = i + 1;
combination(cnt + 1, i);
}
}
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
N = Integer.parseInt(st.nextToken()); M = Integer.parseInt(st.nextToken()); arr = new int[M];
combination(0, 0);
System.out.println(sb);
}
}
'백준' 카테고리의 다른 글
[백준] 2580번 스도쿠 (0) | 2020.05.25 |
---|---|
[백준] 9663번 N-Queen (2) | 2020.05.24 |
[백준] 15651번 N과 M - 3 (C++, JAVA) (0) | 2020.05.24 |
[백준] 15650번 N과 M - 2 (C++, JAVA) (0) | 2020.05.24 |
[백준] 15649번 N과 M - 1 (C++, JAVA) (0) | 2020.05.24 |
Comments