728x90 반응형 분류 전체보기140 [백준] 15655번: N과 M (6) - python https://www.acmicpc.net/problem/15655 15655번: N과 M (6) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 www.acmicpc.net 아이디어 중복이 없는 순열을 뽑아야함으로 콤비네이션처럼 s의 인자를 i + 1로 두어 상태트리를 생성해나간다. def DFS(L, s): if L == m: for i in range(m): print(res[i], end=" ") print() else: for i in range(s, n): res[L] = arr[i] DFS(L+1, i+1) n, m = map(int, input(.. 2024. 4. 8. [백준] 15654번: N과 M (5) - python https://www.acmicpc.net/problem/15654 15654번: N과 M (5) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 www.acmicpc.net 아이디어 부분집합을 결국 만드는 문제이므로 check 리스트를 만들어서 방문하지 않았으면 들어가서 상태트티를 생성하고 방문했으면 넘어가고, Level이 m과 같아지면 저장한 값들을 출력. def DFS(L, s): if L == m: for i in range(m): print(res[i], end=" ") print() else: for i in range(n): if ch[i] == .. 2024. 4. 8. [백준] 15650번: N과 M (2) - python https://www.acmicpc.net/problem/15650 15650번: N과 M (2) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 재귀, DFS를 잘 활용하면 간단히 풀 수 있는 문제 L, s 두개를 통해 가지치기를 활용한다. n ,m = map(int, input().split()) res = [0] * (m+1) cnt = 0 def DFS(L, s): global cnt if L == m: for j in range(L): print(res[j], end=" ") cnt+=1 print() return else: fo.. 2024. 4. 8. [백준] 15652번: N과 M (4) - python https://www.acmicpc.net/problem/15652 15652번: N과 M (4) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 아이디어 DFS를 진행하면서 함수 인자를 L, S 두개를 받아서 진행한다. L은 레벨, S는 비교가능하게 들어가는 i를 넣어준다. 그 후 만약 i가 s보다 크거나 같을 경우에만 res 인자에 값을 추가해주면서 상태트리를 만들어내고, 레벨이 m과 같을 경우에는 저장한 값을 출력해주는 방식으로 코드를 작성했다. def DFS(L, S): if L == m: for i in range(m): prin.. 2024. 4. 8. 이전 1 ··· 16 17 18 19 20 21 22 ··· 35 다음 728x90 반응형