11651

    백준 15649 풀이 (재귀함수, 백트래킹)

    음 백트래킹이 먼지 몰랐다. 그래서 여기저기 기웃거려본 결과 트리를 만들때 불필요한걸 쳐내면서 트리를 만드는거 같다. 물론 이 문제에 백트래킹을 어떻게 적용해야하는지 전혀 이해못했다. 그냥 재귀함수로 적용해서 풀어보자! 라는 마인드로 풀었는데 어찌저찌 풀리긴 풀렸다. 순서는 다음과 같다. 1. 빈 리스트, n, m을 인자로 넣어준다. 2. for 을 이용하여 사용되지 않은 숫자를 리스트에 추가하며 재귀함수를 실행시킨다. 3. m을 하나씩 줄여서 m이 0이 되면 리스트에 저장된 값을 출력해준다. n,m = map(int,input().split()) Map=[i for i in range(1,n+1)] def back(tlist, n,m): if m == 0: for i in tlist: print(Map..

    백준 11651 풀이 (sort, 여러 인자 정렬하기)

    sort를 이용해서 풀면 코드가 상당히 간단해진다. 예를 들어 tmp에는 리스트가 삽입되기 때문에 2차배열이 생성된다. tmp = [[1,2],[1,3],[-2,3]] 과 같은 방식으로 저장된다. 그러면 리스트에서 사용가능한 sort 내장함수를 이용해서 간단하게 정렬할 수있다. 주로 sort만 쓰는경우말고 key로 람다식을 사용해주면 정렬의 우선순위를 정할 수 있다. tmp.sort(key=lambda x: (x[0],x[1])) 를 사용하게 되면 x[0]을 먼저 정렬하고 x[1]을 다음 우선순위로 정렬한다. 따라서 [-2,3] [1,2] [1,3] 으로 정렬되는 것이다. case = int(input()) tmp = [] for _ in range(case): tmp.append(list(map(int..