ํฐ์คํ ๋ฆฌ ๋ทฐ
728x90
๋ฐ์ํ
N๊ณผ M ์๋ฆฌ์ฆ
- ์์๊ฐ 1์์ N์ธ ๊ฒฝ์ฐ
-
์์๊ฐ ์ฃผ์ด์ง๋ ๊ฒฝ์ฐ
- N๊ณผ M (5 ~ 8)
- N๊ณผ M (1 ~ 4)์์ ์์์ ๋ํ ์ฒ๋ฆฌ๋ง ์ถ๊ฐํ๋ฉด ๋๋ค.
-
์ค๋ณต ์์๊ฐ ์กด์ฌํ๋ ๊ฒฝ์ฐ
- 15663 N๊ณผ M (9)
- N๊ณผ M (10 ~ 12)๋ (9)์ ๊ฐ์ด set์ ํ์ฉํ๋ฉฐ ๋ก์ง์ N๊ณผ M 2 - 4์ ๋์ผํ๋ค.
๋ฌธ์
๋ฌธ์ ํ์ด
์์ ํ์ด ํ 15649 N๊ณผ M (1)๋ฅผ ์ดํดํ์๋ค๋ฉด ์ด ๋ฌธ์ ๋ ๋ ์ฝ๊ฒ ํ ์ ์๋ค. ์ค๋ณต์ ํ์ฉํ๋ ์์ด์ ๊ตฌํ๋ ๋ฌธ์ ์ด๋ฏ๋ก ์ค๋ณต์ ์ฒดํฌํ๋ ๊ตฌ๋ฌธ์ ์ญ์ ํด์ฃผ๋ฉด N๊ฐ์ ์์ ๋ํ M ๊ธธ์ด์ ์ค๋ณต ์์ด์ ๊ตฌํ ์ ์๋ค
์ฝ๋
DFS ์ฌ์ฉํ ๋ฌธ์ ํ์ด
from sys import stdin
def dfs(depth):
global answer
# ์ฌ๊ท ์ข
๋ฃ ์กฐ๊ฑด → ์ ํํ๊ณ ์ ํ๋ ์
if depth == m:
answer.append([*check])
else:
for i in range(n):
# ๋ณ๋์ ์ค๋ณต ํ์ธ์ด ํ์ ์์
check[depth] = i + 1
dfs(depth + 1)
if __name__ == '__main__':
answer = []
n, m = map(int, stdin.readline().split())
check = [0] * m
dfs(0)
for num in answer:
print(*num)
itertools product๋ฅผ ํ์ฉํ ๋ฌธ์ ํ์ด
from itertools import product
N, M = map(int, input().split())
nums = [num + 1 for num in range(N)]
for cases in product(nums, repeat=M):
for case in cases:
print(case, end=' ')
print()
728x90
๋ฐ์ํ
'๐จโ๐ป ์ฝ๋ฉํ ์คํธ > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค: 15663 N๊ณผ M (9) (0) | 2020.07.14 |
---|---|
๋ฐฑ์ค: 15652 N๊ณผ M (4) (0) | 2020.07.14 |
๋ฐฑ์ค: 15650 N๊ณผ M (2) (0) | 2020.07.14 |
๋ฐฑ์ค: 15649 N๊ณผ M (1) (0) | 2020.07.14 |
๋ฐฑ์ค: 3085 ์ฌํ ๊ฒ์ (0) | 2020.07.13 |
๋๊ธ
๊ธ ๋ณด๊ดํจ
์ต๊ทผ์ ์ฌ๋ผ์จ ๊ธ
์ต๊ทผ์ ๋ฌ๋ฆฐ ๋๊ธ