Search

๋ฐ•์€๋นˆ

2.๋ฌธ์ œ์ด๋ฆ„
3. ์ˆ˜ํ–‰์‹œ๊ฐ„[์ดˆ(s)]
900
์ข‹์•„์š” ๋ˆ„๋ฅด๊ธฐ
์ข‹์•„์š” ์ˆ˜
: 0
5 more properties
| ์ฝ”๋“œ ์ž‘์„ฑํ•˜๊ธฐ
import java.util.Scanner; public class NM1 { public static void perm(int[] arr, int[] output, boolean[] visited, int depth, int n, int m) { if(depth == m) { for(int i=0; i<output.length; i++) { System.out.print(output[i] + " "); } System.out.println(); return; } for(int i=0; i<n; i++) { if(!visited[i]) { visited[i] = true; output[depth] = i+1; perm(arr,output,visited,depth+1,n,m); visited[i] = false; } } } public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int m = sc.nextInt(); int[] arr = new int[n]; int[] output = new int[m]; boolean[] visited = new boolean[n]; perm(arr,output,visited,0,n,m); } }
Java
๋ณต์‚ฌ
| ์ฝ”๋“œ ์„ค๋ช…ํ•˜๊ธฐ
์ˆœ์—ด์„ ์ด์šฉํ•ด ํ’€์—ˆ๋‹ค
for๋ฌธ์„ ์ฃผ์–ด์ง„ ์ˆซ์ž๊นŒ์ง€ ๋ฐ˜๋ณตํ•˜๋ฉฐ
๋งŒ์•ฝ ๊ทธ ์ธ๋ฑ์Šค์— ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด
๋ฐฉ๋ฌธํ–ˆ๋‹ค ์ฒดํฌ๋ฅผํ•˜๊ณ  ๊ทธ ๊ฐ’์„ +1ํ•ด์„œ output์— ๋„ฃ๋Š”๋‹ค
๊ทธ๋ฆฌ๊ณ  ๋‹ค์‹œ ์ˆœ์—ด ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š”๋ฐ ๊นŠ์ด๋ฅผ 1์ถ”๊ฐ€ํ•ด์„œ ๋„ฃ๋Š”๋‹ค
๊ทธ๋ ‡๊ฒŒ ๋˜๋ฉด output์˜ ๋‹ค์Œ ์ธ๋ฑ์Šค์— vistedํ•˜์ง€ ์•Š์€ ๊ฐ’์ด ๋‹ด๊ธฐ๊ฒŒ ๋˜๊ณ 
๋งŒ์•ฝ ์šฐ๋ฆฌ๊ฐ€ ๊ตฌํ•˜๊ณ ์žํ•˜๋Š” ๊ฐœ์ˆ˜์— ๋„๋‹ฌํ•˜๋ฉด ์ถœ๋ ฅ์„ ํ•œ๋’ค ๋ฆฌํ„ด์„ ํ•˜๊ฒŒ๋œ๋‹ค
๊ทธ๋ ‡๊ฒŒ ๋˜๋ฉด ๋‹ค์‹œ ์œ„์˜ ํ•จ์ˆ˜๋กœ ๋˜๋Œ์•„๊ฐ€๊ณ  for๋ฌธ์ด ํ•˜๋‚˜ +1๋˜๊ณ  ๋‹ค์‹œ ์ˆœ์—ด์ด ๋ˆ๋‹ค