NM2 - by Choice
์ฒ์ ์งฐ๋ ์ฝ๋ : ์๋ ์ฝ๋์ฒ๋ผ ์ ํํ ๊ฒฝ์ฐ์ ์ ํํ์ง ์์ ๊ฒฝ์ฐ 2๊ฐ์ง๋ก ๋๋์ด์ ์ฒ๋ฆฌํด์ฃผ์๋ค. ๊ทธ๋ฐ๋ฐ ๋๋ฒ๊น ์ ๋ช๋ฒ ํด๋ณด๋ฉด ๋์ถฉ ์ ์ ์๋๋ฐ 1๋ฒ ๊ฒฝ์ฐ์์ ๋ง๋ ์ํธ๋ฌธ์ 2๋ฒ ๊ฒฝ์ฐ ๋์ค์ ๋ค์ ๋์ฌ ์ ์๋ค!
๊ทธ๋ฐ๋ฐ ๋๋ฒ๊น ์ ํด๋ณด๋ฉด 1๋ฒ ์ ํํ ๊ฒฝ์ฐ๋ง ์คํ์์ผ์ค๋ ์ค๋ณต์ ์ ์ธํ ๋ชจ๋ ์ค๋ฆ์ฐจ์ ์ํธ๋ฌธ์ด ๋์ฌ ์ ์๋ค๋ ๊ฒ์ ์ ์ ์๋ค!!!!!!
์๋ฅผ ๋ค์ด 1,2,3,4,5,6 6๊ฐ์ ์ซ์๊ฐ ์๊ณ , ์ด์ค 3๊ฐ๋ฅผ ์ ํํด์ ์์ด์ ๋ง๋ ๋ค๊ณ ํ๋ค๋ฉด 1๋ฒ ๊ฒฝ์ฐ : 123, 124,125,126//์ฌ๊ทํจ์ ํธ์ถ๋ก ์ด๋ ๊ฒ ์ญ ๋ง๋ค์ด์ง๊ณ , ์๋ 2๋ฒ ๊ฒฝ์ฐ 134,135,136 ๋ง๋ ํ 134,135,136//i-for๋ฌธ์์ i๊ฐ 1์ฆ๊ฐํ์ฌ i+1๋ฒ์งธ ์ซ์๋ก ๋๋ฒ์งธ์๋ฆฌ ์ซ์ ๋ค์ ๋ง๋ฆ. ์๊ณผ์ ๋ฐ๋ณต 145,146 156 2๋ฒ ๊ฒฝ์ฐ : 134,135,136 145,146 156
์ด๋ฐ์์ผ๋ก ๋ฐ๋ณต๋๋ ๊ฒ์ ๋์ถฉ ์ ์ ์๋ค!
public static void go(int index,int selected,String str) {//index : ๊ณ ๋ฅธ ๋ฌธ์ ๊ฐฏ์, selected : input ๋ฌธ์ ๋ฐฐ์ด์์ ๋ช๋ฒ์งธ๋ถํฐ ์ฌ์ฉํ ๊ฒ์ธ์ง,str : ์ง๊ธ๊น์ง ์ ํํ ๋ฌธ์์ด
//2.์ ๋ต ์ฐพ์ ๊ฒฝ์ฐ - ์กฐ๊ฑด ๊ฒ์ฌ.
if(index==L) {//๊ฐฏ์ ๋ง์ผ๋ฉด
if(check(str)) {//์กฐ๊ฑด ๋ง๋์ง ํ์ธ.
sb.append(str+"\n");
return;
}
}
//1.์ ๋ต ๋ ์ ์๋ ๊ฒฝ์ฐ.
if(index>L) return;//์ง๊ธ๊ป ๋ง๋ ๋ฌธ์์ด์ ๊ธธ์ด๊ฐ C๋ณด๋ค ํฌ๋ฉด ๊ทธ๋ง.
//3.๋ค์ ๊ฒฝ์ฐ ํธ์ถ.
for(int i=selected;i<C;i++) {//C๊ฐ ๋ฌธ์ ์ค์์ selected๋ฒ์งธ๋ถํฐ ๊ณ ๋ฅธ๋ค!
//1.์ ํํ ๊ฒฝ์ฐ.
go(index+1,i+1,str+input[i]);
//2.์ ํ์ํ ๊ฒฝ์ฐ
go(index,i+1,str+"");
}
}
Last updated
Was this helpful?