From 78c684d640964fbe79ce77f3ba9551e8f0fdf9d5 Mon Sep 17 00:00:00 2001 From: songyc macbook Date: Mon, 25 Aug 2025 20:52:21 +0900 Subject: [PATCH] 20250825 baekjoon --- code_study/Baekjoon/python/15663.py | 26 ++++++++++++++++++++++++ code_study/Baekjoon/swift/15663.swift | 29 +++++++++++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 code_study/Baekjoon/python/15663.py create mode 100644 code_study/Baekjoon/swift/15663.swift 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..