Search

์ด์†Œ์˜

2.๋ฌธ์ œ์ด๋ฆ„
3. ์ˆ˜ํ–‰์‹œ๊ฐ„[์ดˆ(s)]
651
์ข‹์•„์š” ๋ˆ„๋ฅด๊ธฐ
์ข‹์•„์š” ์ˆ˜
: 0
5 more properties
| ์ฝ”๋“œ ์ž‘์„ฑํ•˜๊ธฐ
package com.likelion.boj; import java.util.Scanner; public class Main15651 { // N๊ณผ M(3) static int N; static StringBuilder answer = new StringBuilder(); private void permutation(int[] select, int idx) { if(idx == select.length) { for (int num: select) { answer.append(num).append(" "); }answer.append("\n"); return; } for (int i = 1; i <= N; i++) { select[idx] = i; permutation(select, idx+1); } } public static void main(String[] args) { Main15651 main = new Main15651(); Scanner sc = new Scanner(System.in); N = sc.nextInt(); int M = sc.nextInt(); main.permutation(new int[M], 0); System.out.println(answer.toString()); } }
Java
๋ณต์‚ฌ
| ์ฝ”๋“œ ์„ค๋ช…ํ•˜๊ธฐ
ํด๋ž˜์Šค ๋‚ด์˜ ๋ชจ๋“  ๋ฉ”์„œ๋“œ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก static ๋ณ€์ˆ˜๋กœ N๊ณผ ์ •๋‹ต ๋ฌธ์ž์—ด์„ ๋‹ด์„ answer ๋ณ€์ˆ˜ ์„ ์–ธ
N๊ณผ M์„ ์ž…๋ ฅ ๋ฐ›๊ณ  ์„ ํƒํ•œ ์ˆœ์—ด์„ ๋‹ด์„ M๊ธธ์ด์˜ ๋ฐฐ์—ด(select), select ๋ฐฐ์—ด์˜ ํ˜„์žฌ ์ธ๋ฑ์Šค(idx)๋ฅผ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋„˜๊ธฐ๊ธฐ
for๋ฌธ์„ ๋ฐ˜๋ณตํ•˜๋ฉฐ 1~N๊นŒ์ง€ ๋ฐ˜๋ณตํ•˜๋ฉฐ select ๋ฐฐ์—ด์˜ idx ์ธ๋ฑ์Šค์— ์ˆ˜๋ฅผ ๋‹ด๊ธฐ
์ˆ˜๋ฅผ ๋‹ด์€ ํ›„์—๋Š” select๋ฐฐ์—ด์˜ ํ˜„์žฌ ์ธ๋ฑ์Šค์ธ idx์— +1์„ ํ•ด์ฃผ์–ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋„˜๊ฒจ์คŒ์œผ๋กœ์จ ๋‹ค์Œ ์ธ๋ฑ์Šค์—๋„ ์ˆ˜ ์ฑ„์šฐ๊ธฐ
~์˜ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•˜๋ฉฐ select ๋ฐฐ์—ด์„ ์ฑ„์›Œ๋‚˜๊ฐ€๊ธฐ
๋งŒ์•ฝ, idx๊ฐ€ select ๋ฐฐ์—ด์˜ ๊ธธ์ด์™€ ๊ฐ™๋‹ค๋ฉด select ๋ฐฐ์—ด์ด ๋ชจ๋‘ ์ฑ„์›Œ์กŒ๋‹ค๋Š” ์˜๋ฏธ์ด๋ฏ€๋กœ, foreach๋ฌธ์„ ์ด์šฉํ•˜์—ฌ answer์— select์˜ ์›์†Œ๋ฅผ ๊ณต๋ฐฑ๊ณผ ํ•จ๊ป˜ ๋‹ด์•„์ฃผ๊ธฐ
๊ฐ ์ˆœ์—ด์€ ์ค„๋ฐ”๊ฟˆ์„ ๊ธฐ์ค€์œผ๋กœ ๋‚˜๋‰˜๋ฏ€๋กœ select ๋ฐฐ์—ด์˜ ๋ชจ๋“  ์›์†Œ๋ฅผ ๋‹ด์•„์คฌ๋‹ค๋ฉด ๋ฐ˜๋“œ์‹œ ๋งˆ์ง€๋ง‰์— ์ค„๋ฐ”๊ฟˆ Escape ๋ฌธ์ž์—ด์ธ \n์„ ๋‹ด์•„์ฃผ๊ธฐ
์žฌ๊ท€๋ฅผ ๋ชจ๋‘ ๋Œ์•˜๋‹ค๋ฉด main()์—์„œ ์žฌ๊ท€๋ฅผ ํ†ตํ•ด ๋งŒ๋“ค์–ด์ง„ ์ˆœ์—ด ๊ฒฐ๊ณผ ๋ฌธ์ž์—ด์ธ answer๋ฅผ ์ถœ๋ ฅํ•ด์ฃผ๊ธฐ