ํฐ์คํ ๋ฆฌ ๋ทฐ
728x90
๋ฐ์ํ
๋ฌธ์
๋ฌธ์ ํ์ด
์งํฉ์ด ์ฃผ์ด์ง๋ฉด ๋ก๋์ ๊ฒฝ์ฐ 6๊ฐ์ ์๋ฅผ ๋ฝ๊ธฐ ๋๋ฌธ์ 6๊ฐ์ ์๋ฅผ ์ ํํ ์ ์๋ ๊ฒฝ์ฐ์ ์๋ฅผ ์ ํํ๋ ๋ฌธ์ ์ด๋ค. ์์ ์ถ๋ ฅ์ ๋ณด๋ฉด, 6๊ฐ๋ฅผ ์ ํํ ์ ์๋ ์กฐํฉ์ ์ฐพ๋๋ค๋ ๊ฒ์ ์ ์ ์๋ค. ์์ ๋ค๋ฃฌ N๊ณผ M ์๋ฆฌ์ฆ์ ๋์ผํ ๋ฐฉ์์ผ๋ก ์กฐํฉ์ ๊ตฌํ๋ฉด ๋๋ค.
์ฝ๋
DFS๋ฅผ ์ฌ์ฉํ ๋ฌธ์ ํ์ด
from sys import stdin
def dfs(idx, depth):
global answer
if depth == 6:
answer.append([nums[i] for i in check])
else:
for i in range(idx, n):
if i in check:
continue
check[depth] = i
dfs(i + 1, depth + 1)
check[depth] = -1
if __name__ == '__main__':
while True:
answer = []
nums = list(map(int, stdin.readline().split()))
if not nums[0]:
break
n = nums[0]
nums = nums[1:]
check = [-1] * 6
dfs(0, 0)
for num in answer:
print(*num)
print()
itertools๋ฅผ ํ์ฉํ ๋ฌธ์ ํ์ด
from itertools import combinations
while True:
k, *nums = map(int, input().split())
if not k:
break
for cases in combinations(nums, 6):
for case in cases:
print(case, end=' ')
print()
print()
728x90
๋ฐ์ํ
'๐จโ๐ป ์ฝ๋ฉํ ์คํธ > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค: 14501 ํด์ฌ (0) | 2020.07.16 |
---|---|
๋ฐฑ์ค: 10971 ์ธํ์ ์ํ 2 (0) | 2020.07.16 |
๋ฐฑ์ค: 10819 ์ฐจ์ด๋ฅผ ์ต๋๋ก (0) | 2020.07.15 |
๋ฐฑ์ค: 10974 ๋ชจ๋ ์์ด (0) | 2020.07.15 |
๋ฐฑ์ค: 10973 ์ด์ ์์ด (0) | 2020.07.15 |
๋๊ธ
๊ธ ๋ณด๊ดํจ
์ต๊ทผ์ ์ฌ๋ผ์จ ๊ธ
์ต๊ทผ์ ๋ฌ๋ฆฐ ๋๊ธ