![[Backtracking] 백준 15649번 : N과 M (1)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FboiktI%2FbtsMx9u0Twe%2FAAAAAAAAAAAAAAAAAAAAACOPy1ROnuAqX3jltdxU1RZ0EisjwYHcKxcIZgstYYdN%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DNaC325JUkMaM%252BA3w1%252BiGX3OcHuY%253D)
[Backtracking] 백준 15649번 : N과 M (1)백준/Backtracking2025. 2. 25. 20:06
Table of Contents
2025/2/25(화)
https://www.acmicpc.net/problem/15649
🔑 풀이
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
// 실버 3
public class Main {
private static boolean[] used;
private static int N, M;
private static StringBuilder sb;
public static void main(String[] args) throws IOException {
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();
used = new boolean[N + 1];
backtrack(0, "");
System.out.println(sb);
}
private static void backtrack(int cnt, String s) {
if (cnt == M) {
sb.append(s.trim() + "\n"); // trim()은 문자열의 앞뒤 공백 제거
}
for (int i = 1; i <= N; i++) {
if (!used[i]) {
used[i] = true;
backtrack(cnt + 1, s + " " + i);
used[i] = false;
}
}
}
}
'백준 > Backtracking' 카테고리의 다른 글
[Backtracking] 백준 15650번 : N과M (2) (0) | 2025.02.25 |
---|
@킴준현 :: 차근차근 꾸준히
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!