ํฐ์คํ ๋ฆฌ ๋ทฐ
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์ ๋์ผํ๋ค.
๋ฌธ์
๋ฌธ์ ํ์ด
์์ ํผ ๋ฌธ์ ์ค 15650 N๊ณผ M (2)๋ ์ค๋ณต์ ํ์ฉํ์ง ์๋ ์กฐํฉ์ ๊ตฌํ๋ ๋ฌธ์ ์๋ค. ํ์ง๋ง ์ด ๋ฌธ์ ๋ N๊ฐ์ ์์๋ฅผ M๊ฐ ์ ํํ ๋ ์ค๋ณต์ ํ์ฉํ๋ ์กฐํฉ์ ๊ตฌํ๋ ๋ฌธ์ ์ด๋ค. ์ค๋ณต์ ํ์ฉํ์ง ์๋ ์กฐํฉ์ ๋ํ ๋ก์ง์ ์ดํดํ์๋ค๋ฉด ์ด ๋ฌธ์ ๋ ์ฝ๊ฒ ํ ์ ์๋ค. ๊ธฐ์กด ์กฐํฉ์ ๊ตฌํ ๋๋ ์ฌ๊ท ํธ์ถ์ ํ ๋, ํ์ฌ ์ ํ๋ ์์๋ฅผ ์ ํํ์ง ์๋๋ก ์ธ๋ฑ์ค์ +1 ์ฉ ์ฆ๊ฐ์์ผ์ฃผ์๋ค. ํ์ง๋ง ๋์ผํ ์ธ๋ฑ์ค๋ฅผ ํธ์ถ ํ ์ ์๋๋ก ํ๋ฉด ์ค๋ณต ์กฐํฉ์ ๊ตฌํ ์ ์๋ค.
์ฝ๋
DFS๋ฅผ ์ฌ์ฉํ ๋ฌธ์ ํ์ด
from sys import stdin
# ์์ด๊ณผ ๋ฌ๋ฆฌ ํ์ฌ ์ธ๋ฑ์ค์ ๊ฐ์ด ํ์ํจ.
def dfs(idx, depth):
global answer
# ์ฌ๊ท ์ข
๋ฃ ์กฐ๊ฑด → ์ ํํ๊ณ ์ ํ๋ ์
if depth == m:
answer.append([*check])
else:
for i in range(idx, n):
check[depth] = i + 1
dfs(i, depth + 1)
if __name__ == '__main__':
answer = []
n, m = map(int, stdin.readline().split())
check = [0] * m
dfs(0, 0)
for num in answer:
print(*num)
itertools combinations_with_replacement๋ฅผ ํ์ฉํ ๋ฌธ์ ํ์ด
from itertools import combinations_with_replacement
N, M = map(int, input().split())
nums = [num + 1 for num in range(N)]
for cases in combinations_with_replacement(nums, M):
for case in cases:
print(case, end=' ')
print()
728x90
๋ฐ์ํ
'๐จโ๐ป ์ฝ๋ฉํ ์คํธ > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค: 10972 ๋ค์ ์์ด (0) | 2020.07.15 |
---|---|
๋ฐฑ์ค: 15663 N๊ณผ M (9) (0) | 2020.07.14 |
๋ฐฑ์ค: 15651 N๊ณผ M (3) (0) | 2020.07.14 |
๋ฐฑ์ค: 15650 N๊ณผ M (2) (0) | 2020.07.14 |
๋ฐฑ์ค: 15649 N๊ณผ M (1) (0) | 2020.07.14 |
๋๊ธ
๊ธ ๋ณด๊ดํจ
์ต๊ทผ์ ์ฌ๋ผ์จ ๊ธ
์ต๊ทผ์ ๋ฌ๋ฆฐ ๋๊ธ