알고리즘 - N과 M(3)

HoJeong Im·2021년 10월 16일
0

Break_Algo

목록 보기
44/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 int N, M;
	static int[] arr;
	static boolean[] visited;
	static BufferedWriter bw;
	public static void main(String[] args) throws IOException{
		BufferedReader 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];
		
		perm(0);
		bw.flush();
		bw.close();
	}
	private static void perm(int level) throws IOException{
		// TODO Auto-generated method stub
		if(level == M) {
			StringBuffer stb = new StringBuffer();
			for(int i = 0; i < M ; i++) {
				stb.append(arr[i] + " ");
			}
			stb.setLength(stb.length()-1);
			bw.write(stb.toString()+"\n");
			return ;
		}
		
		for(int i = 1; i <= N ; i++) {
			arr[level] = i;
			perm(level+1);
		}
		
	}
}

회고

  • 입출력 문제로 인해 시간 초과가 날 수 있음

  • Br, Bw를 활용하는 습관을 들이는 것도 좋음

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

0개의 댓글