diff --git a/code_study/Baekjoon/python/15663.py b/code_study/Baekjoon/python/15663.py new file mode 100644 index 0000000..04f97ad --- /dev/null +++ b/code_study/Baekjoon/python/15663.py @@ -0,0 +1,26 @@ +import sys + +input = sys.stdin.readline + +def dfs(n, m, nums, visited, result, result_set) : + if len(result) == m : + result_set.append(result.copy()) + return result_set + + for i in range(n) : + if not visited[i] : + visited[i] = True + result.append(nums[i]) + result_set = dfs(n,m,nums,visited,result, result_set) + result.pop() + visited[i] = False + + return result_set + +N, M = map(int, input().split()) +nums = list(map(int,input().split())) +visited = [False]*N + +result_set = sorted(list(set(tuple(t) for t in dfs(N,M,nums,visited,[],[])))) +for t in result_set : + print(*t) diff --git a/code_study/Baekjoon/swift/15663.swift b/code_study/Baekjoon/swift/15663.swift new file mode 100644 index 0000000..0f8a268 --- /dev/null +++ b/code_study/Baekjoon/swift/15663.swift @@ -0,0 +1,29 @@ +func dfs(_ n: Int, _ m: Int, _ nums: [Int], _ visited: inout [Bool], _ result: inout [Int]) { + if result.count == m { + print(result.map{String($0)}.joined(separator: " ")) + return + } + + var prev = -1 + for i in 0..