dfs

15664번: N과 M (10) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net N과M 10번째 문제다. 이전에 풀었던 문제와 거의 비슷하다. # 15664번: N과 M (10) n, m = map(int, input().split()) arr = sorted(list(map(int, input().split()))) visited = [False] * n result = [] def backTracking(num): if len(result) == m: print(*result) return remember = 0 for i in ran..
15663번: N과 M (9) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net N과M 문제중에 제일 까다로운 문제가 아닐까 싶다. 기존 N과 M문제에다가 중복되는 수열을 제외해야하는건데 조건이 까다롭다. # 15663번: N과 M(9) n, m = map(int, input().split()) arr = sorted(list(map(int, input().split()))) result = [] visited = [False] * n def backTracking(): if len(result) == m: print(*result) ret..
15657번: N과 M (8) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 www.acmicpc.net 백트래킹 이번에는 고른 수열이 비내림차순이어야 한다. # 15657번: N과 M(8) n, m = map(int, input().split()) arr = list(map(int, input().split())) result = [] arr.sort() def backTracking(num): if len(result) == m: print(*result) return for i in range(num, n): result.append(arr[i]) ba..
15656번: N과 M (7) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 www.acmicpc.net 백트래킹 문제 같은 수를 골라도 된다는 점에서 제일 쉬운 백트래킹 문제다. # 15656번: N과 M(7) n, m = map(int, input().split()) arr = list(map(int, input().split())) arr.sort() result = [] def backTracking(num): if num == m: print(*result) return for i in range(n): result.append(arr[i]) bac..
15655번: N과 M (6) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 www.acmicpc.net 백트래킹 문제를 또 풀어보자 이번에도 수열이 주어진다. 이전 문제에서 추가된 조건은 고른 수열은 오름차순이어야 한다는 점이다. # 15655번: N과 M(6) n, m = map(int, input().split()) arr = list(map(int, input().split())) arr.sort() result = [] def backTracking(num): if len(result) == m: print(*result) return for i i..
15654번: N과 M (5) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 www.acmicpc.net N과M 문제를 계속 풀어보자~ 이번엔 수열이 입력으로 주어진다. 이전 문제와 개념이 거의 동일하다. 수열의 인덱스를 백트래킹하면 된다! # 15654번: N과 M(5) n, m = map(int, input().split()) arr = list(map(int, input().split())) arr.sort() # arr리스트 정렬 visited = [False] * len(arr) result = [] def backTracking(num): if n..
15652번: N과 M (4) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 오늘도 돌아온 백트래킹 문제다. 이번에는 고른 수열이 비내림차순이어야 하고, 같은 수열을 여러번 골라도 된다. # 15652번: N과 M(4) n, m = map(int, input().split()) result = [] def backTracking(num): if num == m: print(*result) return for i in range(1, n+1): if len(result) == 0: result.append(i) backTracking(nu..
15651번: N과 M (3) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 백트래킹 문제다. 이번에는 같은 수를 여러 번 골라도 된다. # 15651번: N과 M(3) n, m = map(int, input().split()) result = [] def backTracking(num): if num == m: print(*result) return for i in range(1, n+1): result.append(i) backTracking(num+1) result.pop() backTracking(0) 이전 문제에서 조건문을 빼버..
15650번: N과 M (2) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 백트래킹 문제다. 이번에는 1부터 N까지 자연수 중 중복없이 M개를 고르지만, 고른 수열은 오름차순이어야 한다는 조건이 있다. # 15650번: N과 M(2) n, m = map(int, input().split()) result = [] def backTracking(num, x): if num == m: print(" ".join(map(str, result))) return for i in range(x+1, n+1): if i not in result: ..
15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 백트래킹 문제다. 이 문제는 2가지 방식으로 풀 수 있다. # 15649번: N과 M(1) n, m = map(int, input().split()) result = [] visited = [False] * (n+1) def backTracking(num): if num == m: print(" ".join(map(str, result))) return for i in range(1, n+1): if not visited[i]: visited[i] = True ..
happenundo
'dfs' 태그의 글 목록 (2 Page)