시간&메모리 제한
문제
입력&출력
문제 풀이
package com.back;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Back_10974 {
static int N;
static boolean[] visited;
static int[] temp,arr;
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
N = Integer.parseInt(br.readLine());
visited = new boolean[N];
temp = new int[N];
arr = new int[N];
for (int i = 0; i < N; i++) {
temp[i] = i+1;
}
perm(0);
}
private static void perm(int depth) {
if(depth == N) {
for (int i = 0; i < N; i++) {
System.out.print(arr[i]+" ");
}
System.out.println();
return;
}
for (int i = 0; i < N; i++) {
if(visited[i]) {
continue;
}
visited[i] = true;
arr[depth] = temp[i];
perm(depth+1);
visited[i]=false;
}
}
}
- 이 문제는 브루드 포스 알고리즘 문제입니다.
- 즉 모든 경우의 수를 다 조사하는 방법입니다.
- nPn의 경우에 대한 순열을 출력하는 문제입니다.
- perm의 함수에서 for문을 통해서 3개의 값을 선택합니다.
- 3개의 갯수가 다 채워지면 조건문을 통해 빠져나가고 출력을 해줍니다.
'Algorithm > 백준 알고리즘' 카테고리의 다른 글
백준_2304 창고 다각형(자바) / 브루드 포스 알고리즘 (0) | 2021.07.20 |
---|---|
백준_1051 숫자 정사각형(자바) / 브루드 포스 알고리즘 (0) | 2021.07.19 |
백준_10819 차이를 최대로(자바) / 브루드포스 알고리즘 (0) | 2021.07.17 |
백준_13565 침투(자바) / 그래프 탐색 (0) | 2021.07.16 |
백준_7562 나이트의 이동(자바) / 그래프 탐색 (0) | 2021.07.15 |