For Programmer
백준 6603번 파이썬 문제풀이(브루트 포스 - 로또) 본문
728x90
코드1(라이브러리 이용)
import itertools
while True:
array = list(map(int, input().split()))
k = array[0]
S = array[1:]
for i in itertools.combinations(S, 6):
print(*i)
if k == 0:
exit()
print()
-> 따로설명은 생략하겠다. 조합 라이브러리를 사용하게 허용해놓아서 사실상 배열에 k값도 들어가있기 때문에 k값이랑 로또 번호하고 분리만 해주면 쉽게 풀수 있는 문제이다.
코드2(재귀 이용)
def dfs(depth, idx):
if depth == 6:
print(*out)
return
for i in range(idx, k):
out.append(S[i])
dfs(depth + 1, i + 1)
out.pop()
while True:
array = list(map(int, input().split()))
k = array[0]
S = array[1:]
out = []
dfs(0, 0)
if k == 0:
exit()
print()
-> 사실 이문제는 재귀로 dfs를 이용해서 풀어야 되는 문제이다. 실제 시험에는 분명 라이브러리 사용을 막을 테니 dfs를 이용하면 되는데 이문제는 https://ji-gwang.tistory.com/257 와 거의 동일한 문제이니 위의 코드가 이해되지 않는다면 해당 글을 보기를 바란다.
728x90
'코팅테스트 > 백준 문제 모음' 카테고리의 다른 글
백준 14391번 파이썬 문제풀이(브루트 포스 - 종이 조각) (0) | 2021.10.27 |
---|---|
백준 1182번 파이썬 문제풀이(브루트 포스 - 부분수열의 합) (0) | 2021.10.26 |
백준 10971번 파이썬 문제풀이(브루트 포스 - 외판원 순회 2) (1) | 2021.10.25 |
백준 10819번 파이썬 문제풀이(브루트 포스 - 차이를 최대로) (0) | 2021.10.24 |
백준 10973번 파이썬 문제풀이(브루트 포스 - 모든 순열) (0) | 2021.10.24 |
Comments