|
์ฝ๋ ์์ฑํ๊ธฐ
N, M = map(int, input().split())
nums = list(range(1, N+1))
result = []
def num():
if len(result) == M:
for i in result:
print(i, end=' ')
print()
for i in nums:
if len(result) == 0 or i > result[-1]:
result.append(i)
num()
result.remove(i)
num()
Python
๋ณต์ฌ
|
์ฝ๋ ์ค๋ช
ํ๊ธฐ
n๊ณผ m(1)์ ํ๊ณ ๋ฐ๋ก ํ์ด์ ๋นจ๋ฆฌ ํ ์ ์์๋ค.
(1)์ ์์ด์ ์ฑ๊ฒฉ์ด๋ฉฐ, (2)๋ ์กฐํฉ์ผ๋ก ๋ณผ ์ ์๋ค. (์์๋ฅผ ๋ฐ๊ฟจ์ ๋ ์ค๋ณต์ ํ๋ฝํ์ง ์๋๋ค)
result์๋ ์ฌ๊ท๋ฅผ ๋๋ฉฐ result์ ์๋ ์๋ค์ด ๋ด๊ธธํ
๋ฐ, ์ด ๋ ๋ฐ๋ณต๋ฌธ์ ์ค๋ฆ์ฐจ์์ผ๋ก ๋๋ฆฌ๋ฏ๋ก result์๋ ์ค๋ฆ์ฐจ์์ผ๋ก ๋ด๊ธด๋ค. ๋ฐ๋ผ์ result์ ๋ง์ง๋ง์ ์๋ ์๋ณด๋ค ํฐ ์๋ง์ ๋ด์ ์ ์๋๋ก ์กฐ๊ฑด๋ฌธ์ ๋ง๋ค์๋ค.
1.
์
๋ ฅ๋ฐ๊ธฐ
a.
N๊ณผ M์ int๋ก ์
๋ ฅ๋ฐ๋๋ค.
b.
1๋ถํฐ N์ ๋ด๋ ๋ฐฐ์ด์ ๋ง๋ ๋ค
2.
์ฌ๊ท ํจ์
a.
๋ฐ๋ณต : ํจ์๊ฐ ์์๋๋ฉด ์ ์ฒด ์ซ์ ๋ฐฐ์ด์ ๋๋ฉด์ result์ ์์ผ๋ฉฐ result์ ๋ง์ง๋ง์๋ณด๋ค ํฐ ์๋ฅผ result์ ๋ฃ๋๋ค.
์ฌ๊ท๋ฅผ ํ์ฐ๊ณ ๋์ result์์ ๋ฃ์๋ ๊ฒ์ ๋นผ์ค์ผ์ง ๋ฐ๋ณต๋ฌธ์์ ๊ฐ์์ ๊ฐ์ ์ํฅ์ ์ฃผ์ง ์๋๋ค.
b.
ํ์ถ : result์ ๊ธธ์ด๊ฐ M์ด ๋๋ฉด ๊ฒฐ๊ณผ๊ฐ์ ์ถ๋ ฅํ๊ณ ํ์ถํ๋ค.
โข
print(*list) : *๋ list, set, str๊ณผ ๊ฐ์ iterableํ ์์๋ค์ unpackingํ๋ ํจ๊ณผ๊ฐ ์๋ค. ๊ทธ๋ฆฌ๊ณ ๊ธฐ๋ณธ์ ์ผ๋ก sep=โ โ์ด๋ค. ๋ฐ๋ผ์ list์ ๊ฐ๋ค์ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถํ์ฌ ํ ์ค์ ์ถ๋ ฅํ ์ ์๋ค.
โ for๋ฌธ์ผ๋ก ์ถ๋ ฅํ๋ ๊ฒ๋ณด๋ค ์ค๋ ๊ฑธ๋ฆฐ๋ค.
โข
์๋ ์ฝ๋๋ ์ ์ด์ ์์๊ฐ์ result์ ๋ฃ์ ๊ฐ์ 1์ ๋ํด์ ๋งค๊ฐ๋ณ์๋ก ๋๊ฒจ์ค๋ค.
def nums(a):
if len(result) == M:
print(*result)
for i in range(a, N+1):
result.append(i)
nums(i+1)
result.remove(i)
nums(1)
Python
๋ณต์ฌ