[๋ฐฑ์ค] 15651 - N ๊ณผ M(3) with. Python
๐ก๋ฌธ์ ๋ถ์ ์์ฝ
-- ๋ฌธ์ --
์ ๋ ฅ : N ,M (1 โค M โค N โค 7)
1 ~ N ๊น์ง ์์ฐ์ ์ค์์ M๊ฐ๋ฅผ ๊ณ ๋ฅธ ์์ด
๊ฐ์ ์๋ฅผ ์ฌ๋ฌ๋ฒ ๊ณจ๋ผ๋ ๋จ
์ค๋ณต๋๋ ์์ด์ ์ฌ๋ฌ ๋ฒ ์ถ๋ ฅํ๋ฉด ์๋จ
๊ฐ ์์ด์ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถํด์ ์ถ๋ ฅ
์์ด์ ์ฌ์ ์์ผ๋ก ์ฆ๊ฐํ๋ ์์๋ก ์ถ๋ ฅ
๐ก์๊ณ ๋ฆฌ์ฆ ์ค๊ณ
input์ ํตํด n,m์ ์ ๋ ฅ๋ฐ๋๋ค.
๋ฆฌ์คํธ๋ฅผ ๋ง๋ค์ด์ n๊น์ง ๋ค ๋ฃ์ด์ค ํ dfs ํจ์๋ฅผ ์ ์ฉ์์ผ์ค๋ค.
์ ์ฉ์ํจ ์ซ์๋ค์ ๋นผ์ค๋ค.
๐ก์ฝ๋
n,m = map(int, input().split())
s=[]
def dfs():
if len(s)==m:
print(' '.join())
for i in range(1, n+1):
s.append(i)
๐ก์๊ฐ๋ณต์ก๋
O(n)
๐กํ๋ฆฐ ์ด์
- ๋ฌธ์ ์ ์กฐ๊ฑด์ ๊ตฌํํ๋ ๋ฅ๋ ฅ์ด ๋จ์ด์ง๋ค.
๐กํ๋ฆฐ ๋ถ๋ถ ์์ or ๋ค๋ฅธ ํ์ด
n,m= map(int,input().split())
s = []
def dfs():
if len(s)==m:
print(' '.join(map(str,s)))
return
for i in range(1,n+1):
s.append(i)
dfs()
s.pop()
dfs()
๐ก๋๋์ or ๊ธฐ์ต ํ ์ ๋ณด
์ฒ์ ์ฝํ ๋ฅผ ์ ํ๋ค๋ณด๋ ์ ๊ทผํ๋๋ฐ ์ด๋ ค์์ ๋๋. -> ๋ฌธ์ ๋ง์ด ์ ํด๋ณด๊ธฐ.
๊ฐ๋ ๋ง ๊ณต๋ถํ์ง ๋ง๊ณ ๊ธฐ๋ณธ ๊ตฌํํ ์ฝ๋ ๋ง์ด ์ ํด๋ณด๊ธฐ.
map(str,s) :
s
๋ฆฌ์คํธ์ ๋ชจ๋ ์์์ ๋ํดstr()
ํจ์๋ฅผ ์ ์ฉํ์ฌ ๊ฐ ์์๋ฅผ ๋ฌธ์์ด๋ก ๋ณํ
https://jiwon-coding.tistory.com/23 ๊ฐ๋ ํ์ด ์ฐธ๊ณ ํ์์ต๋๋ค.