
๐ปQ
15650๋ฒ: N๊ณผ M (2)
ํ ์ค์ ํ๋์ฉ ๋ฌธ์ ์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์์ด์ ์ถ๋ ฅํ๋ค. ์ค๋ณต๋๋ ์์ด์ ์ฌ๋ฌ ๋ฒ ์ถ๋ ฅํ๋ฉด ์๋๋ฉฐ, ๊ฐ ์์ด์ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถํด์ ์ถ๋ ฅํด์ผ ํ๋ค. ์์ด์ ์ฌ์ ์์ผ๋ก ์ฆ๊ฐํ๋ ์์๋ก ์ถ๋ ฅํด
www.acmicpc.net
๐กA
dfs ํ์ด ๋ฐฉ์์ผ๋ก ํ์๋ค.
1๋ถํฐ N๊น์ง์ ์ ์ค ์ค๋ฆ์ฐจ์์ด๋ฉด์ M์ ๊ธธ์ด๊น์ง ๋์ด ๊ฐ๋ฅํ ์์ด์ ์ฐพ๋ ๋ฌธ์ .
start๋ก ์ด๊ธฐํํ i๋ฅผ arr ๋ฐฐ์ด์ ๋ฃ๊ณ ์ฌ๊ท ํธ์ถํ๋ฉด์ i๋ฅผ +1 ํ๋ฉฐ ํ์ํ๋ค.
depth๋ +1๋ฅผ ํ๋ฉฐ ์ฌ๊ท ํธ์ถ์ ํ๋ฉด ๋ค์ ์ฌ๊ท์์๋ ๋ฐ๋ณต๋ฌธ์์ +1ํ ๊ฐ๋ถํฐ ํ์ ํ๊ฒ ๋๋ ๋ฐฉ์์ด๋ค.
depth๊ฐ m๊ณผ ๊ฐ์์ง๋๊น์ง ๋ฐ๋ณตํ๊ฒ ๋๋ค.
import java.util.Scanner; public class Main { static Scanner sc = new Scanner(System.in); static int n = sc.nextInt(); static int m = sc.nextInt(); static int[] arr = new int[m]; static StringBuilder sb = new StringBuilder(); public static void dfs(int start, int depth) { if(depth == m) { for(int i : arr) { sb.append(i).append(' '); } sb.append('\n'); return; } for(int i=start; i<=n; i++) { arr[depth] = i; dfs(i+1, depth+1); } } public static void main(String[] args) { dfs(1,0); System.out.println(sb); } }โ
'Algorithm > Baekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| ๋ฐฑ์ค 1541 ์์ด๋ฒ๋ฆฐ ๊ดํธ (0) | 2021.11.02 |
|---|---|
| ๋ฐฑ์ค 15649 N๊ณผ M(1) (0) | 2021.10.30 |
| [9์ฃผ์ฐจ] ๋ฐฑ์ค 10162 ์ ์๋ ์ธ์ง (0) | 2021.09.28 |
| [8์ฃผ์ฐจ] ๋ฐฑ์ค 18352 ํน์ ๊ฑฐ๋ฆฌ์ ๋์ ์ฐพ๊ธฐ (0) | 2021.09.25 |
| [7์ฃผ์ฐจ] ๋ฐฑ์ค 2579 ๊ณ๋จ ์ค๋ฅด๊ธฐ (0) | 2021.09.15 |