n,m์ ์
๋ ฅ๋ฐ๊ณ num์ด๋ผ๋ list๋ฅผ ์ ์ํ์
์๋ฆฟ์๋ง๋ค n์ ๊ฒฝ์ฐ์ ์๋งํผ ์์๋๋ก ๊ณ ๋ฅด๋ ํจ์ bt()๋ฅผ ๋ง๋ค์
for loof์ผ๋ก i๋ฅผ 1~n๋งํผ ์ฆ๊ฐ์ํค๋ฉด์ num์ append()ํ์ฌ num ๊ธธ์ด๊ฐ m์ด๋ฉด ์ถ๋ ฅ,
m๋ณด๋ค ์์ผ๋ฉด bt()๋ฅผ ์ฌํธ์ถํ์
โป m์๋ฆฟ์๋งํผ append() ํด์ผํ๋ฏ๋ก ์ฌ๊ทํจ์๋ก ๊ตฌํํ์
#bt()๋ ์ฌ๊ทํจ์๋ก, ์๋์ ๊ฐ์ด ์ค๊ณํ์
def bt():
if num๊ธธ์ด๊ฐ m์ผ๋:
๊ฒฐ๊ณผ์ถ๋ ฅ
for i๋ฅผ 1~n๊น์ง:
์๋ฆฟ์๋งํผ bt()ํธ์ถํ๋ฉฐ ์ซ์๋ฝ๊ธฐ
bt()
import sys
input = sys.stdin.readline
n,m = map(int, input().split())
num = []
def bt():
if len(num) == m:
print(*num)
return
for i in range(1,n+1):
if i not in num:
num.append(i)
bt()
num.pop()
bt()
import sys
input = sys.stdin.readline
n,m = map(int, input().split())
num = []
def bt():
#num์ ๊ธธ์ด๋ฅผ ํ์ธํ์ฌ m์ด๋ฉด ์ถ๋ ฅ ํ return
if len(num) == m:
print(*num)
return
#1~n๊น์ง ์ซ์ ๋ฝ๊ธฐ
for i in range(1,n+1):
#i๊ฐ ํ์ฌ num์ ์์ ๋๋ง ์คํ (์ค๋ณต์ ๊ฑฐ)
if i not in num:
num.append(i)
#๋ค์์๋ฆฟ์ ๋ฝ๊ธฐ์ํด bt()์ฌํธ์ถ (์ฌ๊ท)
bt()
#bt() ์๋จ์ num ๊ธธ์ด ํ์ธํ๋ if์์ return ๋๋ฉด,
#์ ์ผ ๋ง์ง๋ง ์์ ์ ๊ฑฐ
num.pop()
bt()
โ์ด๋ป๊ฒ ๋์ํ๊ฒ ๋ ๊น
โปn,m = 4,2์ธ ๊ฒฝ์ฐ
1. bt()์ if๋ ๋์ด๊ฐ๊ณ for loof์์ i์ [1]์ด ๋ค์ด์จ๋ค.
2. num์ 1์ด append๋๋ค. (num = [1])
3. for loof์์ bt()๊ฐ ์ฌํธ์ถ ๋๋ค.
4. 2๋ฒ์งธ ํธ์ถ๋ bt()์ for loof์ i๋ 1๋ถํฐ ๋ค์ ๋์ํ๋๋ฐ,
"if i not in num"์ ์ถฉ์กฑ๋์ง ์์ผ๋ฏ๋ก (1์ด ์ค๋ณต) i=2๊ฐ ๋๋ค.
5. num์ 2๊ฐ append๋๋ค. (num = [1,2])
6. for loof์์ bt()๊ฐ ๋ ์ฌํธ์ถ ๋๋ค. (3๋ฒ์งธ)
7. 3๋ฒ์งธ bt()์์ "if len(num)==m"์กฐ๊ฑด์ ๋ง์กฑํ์ฌ num์ ์ถ๋ ฅํ๊ณ return
8. return ํ num.pop()์ ๋ง๋, num์ ์ ์ผ ๋ง์ง๋ง ์์๋ฅผ ์ ๊ฑฐํ๋ค. (num = [1])
9. 4๋ฒ์์ ๋ค์ ๋๋ for loof์ i๋ 3์ด ๋์ด, ์ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค.
๐๐ป๋์๊ณผ์
[1] โ [1,2]์ถ๋ ฅ โ [1] โ [1,3]์ถ๋ ฅ โ [1] โ [1,4]์ถ๋ ฅ ...
โป์ด๊ธฐ ์๊ณ ๋ฆฌ์ฆ
import sys
input = sys.stdin.readline
n,m = map(int, input().split())
num = []
def bt():
if len(num) == m:
print(*num)
del num[-1]
for i in range(1,n+1):
if i not in num:
num.append(i)
bt()
bt()
โ๋ด ์๊ณ ๋ฆฌ์ฆ์ด ํ๋ฆฐ ์ด์
num์ ์ด๊ธฐ๊ฐ [1,2]๋ฅผ ์ ์ฅํ๊ณ , bt()๊ฐ ์ฌํธ์ถ๋์ด if๋ฌธ ๋ง์กฑ ํ ์ถ๋ ฅํ๋๋ฐ,
์ฌ๊ทํจ์ bt()๊ฐ ์ข
๋ฃ๋์ง ์์์ for loof์ i๊ฐ ๋ค์ 1๋ถํฐ ๋๊ธฐ ๋๋ฌธ์,
[1] โ [1,2] โ [1] โ for loof i=1์ด๋ผ ๋ค์ 2๋ถํฐ ์ ์ฅ [1,2]๊ฐ ๋ฐ๋ณต๋๋ค.
โ์ฌ๊ทํจ์ ์ฌ์ฉ ์ for loof์ ๊ฐ์ ์ ์ฅํด์ผ ํ๋ค๋ฉด, ์ฌ๊ท๋ ํจ์์ ์ข
๋ฃ(return)์ ํ์!