diff --git "a/learntosurf/Backtracking/2025-04-19-[BOJ]-#15649-N\352\263\274M(1).py" "b/learntosurf/Backtracking/2025-04-19-[BOJ]-#15649-N\352\263\274M(1).py" new file mode 100644 index 0000000..3f4f1ed --- /dev/null +++ "b/learntosurf/Backtracking/2025-04-19-[BOJ]-#15649-N\352\263\274M(1).py" @@ -0,0 +1,18 @@ +N, M = map(int, input().split()) +visited = [False] * (N + 1) # 1부터 N까지 사용 여부 +result = [] + +def backtrack(): + if len(result) == M: + print(' '.join(map(str, result))) + return + + for i in range(1, N + 1): + if not visited[i]: + visited[i] = True + result.append(i) + backtrack() + result.pop() # 상태 복원 + visited[i] = False # 방문 초기화 + +backtrack() \ No newline at end of file diff --git "a/learntosurf/Backtracking/2025-04-19-[BOJ]-#6603-\353\241\234\353\230\220.py" "b/learntosurf/Backtracking/2025-04-19-[BOJ]-#6603-\353\241\234\353\230\220.py" new file mode 100644 index 0000000..5ab89ac --- /dev/null +++ "b/learntosurf/Backtracking/2025-04-19-[BOJ]-#6603-\353\241\234\353\230\220.py" @@ -0,0 +1,26 @@ +import sys + +def backtrack(S, path, start): + if len(path) == 6: + print(' '.join(map(str, path))) + return + for i in range(start, len(S)): + path.append(S[i]) + backtrack(S, path, i + 1) + path.pop() + +lines = sys.stdin.read().splitlines() +first_case = True + +for line in lines: + if line == '0': + break + + parts = list(map(int, line.strip().split())) + S = parts[1:] + + if not first_case: + print() + first_case = False + + backtrack(S, [], 0) \ No newline at end of file