알고리즘 - N과 M (4)

HoJeong Im·2021년 10월 16일
0

Break_Algo

목록 보기
45/46

문제

코드

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;

public class Main {
	
	static BufferedReader br;
	static BufferedWriter bw;
	static int N,M;
	static int[] arr;
	public static void main(String[] args) throws IOException{
		br = new BufferedReader(new InputStreamReader(System.in));
		bw = new BufferedWriter(new OutputStreamWriter(System.out));
		StringTokenizer stk = new StringTokenizer(br.readLine());
		
		N = Integer.parseInt(stk.nextToken()); 
		M = Integer.parseInt(stk.nextToken());
		arr = new int[M];
		comb(0,1);
	}
	private static void comb(int i, int j) throws IOException{
		// TODO Auto-generated method stub
		if(i == M){
			for(int i1 = 0; i1 < arr.length ; i1++ ) {
				bw.write(arr[i1] + " ");
			}
			bw.write("\n");
			bw.flush();
			return;
		}
		
		for(int k = j ; k <= N ; k++) {
			arr[i] = k;
			comb(i+1, k);
		}
	}
}

회고

  • 오랜만에 다시 풀어본 순열, 조합 문제들

  • 계속해서 반복해서 내 것으로 만들자

  • 기초적인 arrayoutofindex 실수를 최대한 줄이는 방식으로 가보자!

profile
꾸준함이 제일 빠른 길이었다

0개의 댓글