N M 5

๋ฌธ์ œ ์„ค๋ช…

์ž…์ถœ๋ ฅ ์˜ˆ์‹œ

N๊ฐœ์˜ ์„œ๋กœ ๋‹ค๋ฅธ ์ˆ˜๊ฐ€ ์ฃผ์–ด์ง€๊ณ , ์ด ์ค‘์—์„œ M๊ฐœ๋ฅผ ๊ณจ๋ผ ์ˆ˜์—ด์„ ๋งŒ๋“ ๋‹ค.

N๊ฐœ์˜ ์„œ๋กœ ๋‹ค๋ฅธ ์ˆ˜์ด์ง€๋งŒ ์ด๊ฒƒ์€ ๋ฐฐ์—ด๋กœ num[1],num[2],num[3]..์œผ๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๊ณ , ์•ž์—์„œ 1๋ถ€ํ„ฐ N๊นŒ์ง€ ์ž์—ฐ์ˆ˜์˜€๋‹ค๋ฉด ์ด ๋ฌธ์ œ์—์„œ๋Š” ์ธ๋ฑ์Šค๊ฐ€ 1๋ถ€ํ„ฐ N-1๊นŒ์ง€์ธ ์ˆ˜๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ˆ˜์—ด ๋ฐฐ์—ด์— a[index] = i (0<=index<=m, 1<=i<=m) ์ด์˜€๋‹ค๋ฉด ์ด ๋ฌธ์ œ์—์„œ๋Š” a[index] = num[i] (0<=index<=m, 0<=i<=n-1) ์ด ๋œ๋‹ค. num๋ฐฐ์—ด์—์„œ ์‚ฌ์šฉํ•œ ์ธ๋ฑ์Šค๋Š” true๋กœ ์ฒ˜๋ฆฌํ•˜๊ณ , ์ˆ˜์—ด ์ƒ์„ฑํ–ˆ๋‹ค๋ฉด ๋‹ค์‹œ false์ฒ˜๋ฆฌํ•ด์ค€๋‹ค.

for(int i=0;i<n;i++) {
			if(c[i]) continue;
			c[i] = true;a[index] = num[i];
			ans.append(go(num,index+1,n,m));
			c[i] = false;
}

Last updated

Was this helpful?