๐ŸŒท๐ŸŒผ๋ชจ์—ฌ๋ด์š” ๊ฐœ๋ฐœ์˜์ˆฒ๐ŸŒท๐ŸŒผ

๋ถ€๋ถ„์ง‘ํ•ฉ ๊ตฌํ•˜๊ธฐ(DFS) ๋ณธ๋ฌธ

๊ฐœ๋ฐœ/์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ’€์ด JAVA

๋ถ€๋ถ„์ง‘ํ•ฉ ๊ตฌํ•˜๊ธฐ(DFS)

์š”์ผ์ด 2021. 7. 29. 08:09
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ

์ž์—ฐ์ˆ˜ N์ด ์ฃผ์–ด์ง€๋ฉด 1๋ถ€ํ„ฐ N๊นŒ์ง€์˜ ์›์†Œ๋ฅผ ๊ฐ–๋Š” ์ง‘ํ•ฉ์˜ ๋ถ€๋ถ„์ง‘ํ•ฉ์„ ๋ชจ๋‘ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ ์„ ์ž‘์„ฑํ•˜์„ธ์š”.

 

์ž…๋ ฅ์„ค๋ช…

์ฒซ ๋ฒˆ์งธ ์ค„์— ์ž์—ฐ์ˆ˜ N(1<=N<=10)์ด ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.

 

์ถœ๋ ฅ์„ค๋ช…

์ฒซ ๋ฒˆ์งธ ์ค„๋ถ€ํ„ฐ ๊ฐ ์ค„์— ํ•˜๋‚˜์”ฉ ๋ถ€๋ถ„์ง‘ํ•ฉ์„ ์•„๋ž˜์™€ ์ถœ๋ ฅ์˜ˆ์ œ์™€ ๊ฐ™์€ ์ˆœ์„œ๋กœ ์ถœ๋ ฅํ•œ๋‹ค. ๋‹จ ๊ณต์ง‘ํ•ฉ์€ ์ถœ๋ ฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

 

์ž…๋ ฅ์˜ˆ์ œ

3

 

์ถœ๋ ฅ์˜ˆ์ œ

1 2 3

1 2

1 3

1

2 3

2

3

 

 

 

import java.util.*;

class Main {
	
	static int n;
	static int[] ch;
	public void DFS(int L) {
		// 4๊ฐ€๋˜์—ˆ์„๋•Œ
		if(L == n+1) {
			String tmp = "";
			for(int i=1; i<=n; i++) {
				if(ch[i] == 1) {
					tmp += (i + " ");
				}
			}
			if(tmp.length() > 0) {
				System.out.println(tmp);
			}
		}else {
			// ์‚ฌ์šฉํ•œ๋‹ค
			ch[L] = 1;
			// ์™ผ์ชฝ๋…ธ๋“œ
			DFS(L+1);
			// ์‚ฌ์šฉํ•˜์ง€์•Š๋Š”๋‹ค
			ch[L] = 0;
			// ์˜ค๋ฅธ์ชฝ ๋…ธ๋“œ
			DFS(L+1);
		}
	}
	
	public static void main(String args[]) {
		Main T = new Main();
		n=3;
		// ์ธ๋ฑ์Šค๋ฒˆํ˜ธ๋ฅผ ์ˆซ์ž๋กœ ์ƒ๊ฐํ•˜๊ธฐ
		ch = new int[n+1];
		T.DFS(1);
	}
}
Comments