백준 15650 N과M (2)

노문택·2022년 4월 5일
0
post-thumbnail

https://www.acmicpc.net/problem/15650

백트래킹 문제를 돌파하기위해 고른 실버3..

수열 에 오름차순 설정을 넣어주라는 문제!

사실 .. 백트래킹 적인부분보다..수열을 짤수있으면 ..ㅎ;;;

수열이랑 조합문제에 특히 약한대..이부분은 나중에 돌파하도록한다..

메인 로직

  1. 수열 만들기
  2. 수열 구성중 number select를 현재 current number +1부터 시작해주면 끝
import java.util.*;
import java.io.*;

public class N과M2 {

	static int N;
	static int M;
	static int[] array;
	static StringBuilder sb;
	public static void main(String[] args) throws Exception{
		// TODO Auto-generated method stub
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer(br.readLine());
		 N = Integer.parseInt(st.nextToken());
		 M = Integer.parseInt(st.nextToken());
		 sb = new StringBuilder();
		 array = new int[M];
		 
		 pro(0,0);
		 System.out.println(sb);
		 
		 
		 
	}
	public static void pro(int cur,int count) {
		if(count==M) {
			for(int i=0;i<M;i++) {
				sb.append(array[i]).append(" ");
			}
			sb.append("\n");
			return;
		}

		for(int i=cur+1;i<=N;i++) {
			array[count]=i;
			pro(i,count+1);
		}
	}

}

얼른 실버2로 넘어가자!!!

profile
노력하는 뚠뚠이

0개의 댓글