알고리즘 - N과 M(1)

HoJeong Im·2021년 10월 16일
0

Break_Algo

목록 보기
43/46

문제

코드

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

public class BOJ_15649 {
	
	static int N,M;
	static int[] arr, path;
	static boolean[] visited;
	public static void main(String[] args) throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer stk = new StringTokenizer(br.readLine());
		N = Integer.parseInt(stk.nextToken());
		M = Integer.parseInt(stk.nextToken());
		path = new int[M];
		visited = new boolean[N+1];
		
		perm(0);
		
	}
	private static void perm(int level) {
		// TODO Auto-generated method stub
		if(level == M) {
			StringBuffer stb = new StringBuffer();
			for(int i = 0; i < path.length ; i++) {
				stb.append(path[i] + " ");
			}
			stb.setLength(stb.length()-1);
			System.out.println(stb);
			return ;
		}
		
		for(int i = 1; i <= N ; i++) {
			if(visited[i]) continue;
			
			path[level] = i;
			visited[i] = true;
			perm(level+1);
			visited[i] = false;
		}
	}
}

회고

  • 실수가 너무 잦은 듯

  • 이정도는 쉽게 작성하고 원하는 결과를 얻어낼 수 있어야 한다!

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

0개의 댓글