728x90
반응형
❓문제
https://www.acmicpc.net/problem/15649
📌유형
Backtracking
✍🏻풀이
방문한 숫자가 아니라면 true로 바꾼 후 result에 삽입.
result의 길이가 m과 같아지면 출력 후 return하고 result에서 제일 마지막 숫자를 제거.
이를 n까지 반복.
💻코드
import java.util.*;
import java.io.*;
public class Main {
static int n;
static int m;
static boolean[] visited;
static ArrayList<Integer> result = new ArrayList<>();
static BufferedReader r = new BufferedReader(new InputStreamReader(System.in)); // 입력
static void backtracking() {
if (result.size() == m) {
for (int i = 0; i < m; i++) System.out.print(String.valueOf(result.get(i)) + " ");
System.out.println();
return;
}
for (int i = 1; i <= n; i++) {
if (!visited[i]) {
visited[i] = true;
result.add(i);
backtracking();
visited[i] = false;
result.remove(result.size()-1);
}
}
}
public static void main(String[] args) throws IOException {
StringTokenizer st = new StringTokenizer(r.readLine());
n = Integer.parseInt(st.nextToken());
m = Integer.parseInt(st.nextToken());
visited = new boolean[n + 1];
Arrays.fill(visited, false);
backtracking();
}
}
728x90
반응형
'Coding Test > Algorithms' 카테고리의 다른 글
[프로그래머스]완주하지 못한 선수/Java - Lv.1 (0) | 2024.10.06 |
---|---|
[Baekjoon] 14889.스타트와 링크/Java - Silver1 (0) | 2024.09.29 |
[프로그래머스] 주식가격/Java - Lv.2 (0) | 2024.09.29 |
[Baekjoon] 28278. 스택 2/Java - Silver4 (0) | 2024.09.28 |
[프로그래머스] 순위/Python - Lv.3 (1) | 2024.09.28 |