For Programmer
백준 15654번 파이썬 문제풀이(브루트 포스 - N과M(5)) 본문
728x90
코드
n, m = map(int, input().split())
array = [int(x) for x in input().split()]
array.sort() # 오름차순으로 출력하기 위해 정렬
visited = [False] * (max(array) + 1) # 방문했는지 확인을 위한 리스트
out = [] # 출력을 위한 리스트
def solve(depth, n, m):
if depth == m:
print(' '.join(out))
return
for i in array: # 입력받은 배열의 원소를 돈다
if not visited[i]: # 만약 해당 원소가 방문하지 않았다면
visited[i] = True # 방문한 것으로 바꿔주고
out.append(str(i)) # 그 값을 추가
solve(depth + 1, n, m) # 다시 깊이+1 해준다음 다시 돈다.
visited[i] = False # 다 돌았으면 방문안한것으로 False
out.pop() # 그 값을 지워준다.
solve(0, n, m)
-> 15649번이랑 거의 동일한 문제인데 원하는 수를 입력받는 점에서 약간 다르다. 그 부분만 생각한다면 나머지는 동일한 코드이다.
728x90
'코팅테스트 > 백준 문제 모음' 카테고리의 다른 글
백준 1759번 파이썬 문제풀이(브루트 포스 - 암호 만들기) (0) | 2021.10.20 |
---|---|
백준 15655번 파이썬 문제풀이(브루트 포스 - N과M(6)) (0) | 2021.10.19 |
백준 15652번 파이썬 문제풀이(브루트 포스 - N과M(4)) (0) | 2021.10.19 |
백준 15651번 파이썬 문제풀이(브루트 포스 - N과M(3)) (0) | 2021.10.19 |
백준 15650번 파이썬 문제풀이(브루트 포스 - N과M(2)) (0) | 2021.10.19 |
Comments