backtracking

wonderful world·2023년 1월 7일

coding

목록 보기
2/9

permutations

https://leetcode.com/problems/permutations/
Given an array nums of distinct integers, return all the possible permutations. You can return the answer in any order.

Example 1:

Input: nums = [1,2,3]
Output: [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]
Example 2:

Input: nums = [0,1]
Output: [[0,1],[1,0]]
Example 3:

Input: nums = [1]
Output: [[1]]

class Solution:
    # backtracking
    def permute(self,nums):
        ret = []
        def bt(tr):
            if len(tr)==len(nums):
                ret.append(tr)
                return
            
            for n in nums:
                if n not in tr:
                    bt(tr+[n])
            
        bt([])
        return ret

N과 M(2)

https://www.acmicpc.net/problem/15650

N과 M(4)

N과 M(5)

N과 M(8)

N과 M(9)

N과 M(12)

https://www.acmicpc.net/problem/15666

def ints(): return list(map(int, input().split()))
n,m=ints()
xs = ints()

def bt(memo, xs, tr, m):
    if m==0:
        tr = ' '.join(tr)
        if tr not in memo:
            memo.add(tr)
            print(tr)
        return
    for i,x in enumerate(xs):
        next_tr = tr + [x]
        bt(memo, xs[i:], next_tr, m-1)

xs = list(map(str, sorted(xs)))
bt(set(), xs, [], m)
profile
hello wirld

0개의 댓글