본문 바로가기
728x90

분류 전체보기149

[백준] 15665번: N과 M (11) - python https://www.acmicpc.net/problem/15665 15665번: N과 M (11) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 아이디어 중복을 허용하지 않고 사전 순으로 진행. 아까와 부분집합과는 다르게 뿌리를 펼치면서 상태트리 값이 중복인지만 체크하면 됨으로 remeber 변수에 arr[i]을 저장시켜 중복을 제거할 수 있도록 설계. def DFS(L): if L == m: for i in range(m): print(res[i], end=" ") print() else: remember = 0 for i in ra.. 2024. 4. 9.
[백준] 15664번: N과 M (10) - python https://www.acmicpc.net/problem/15664 15664번: N과 M (10) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 아이디어 재귀함수의 인자값으로 index를 넘겨주어서 중복되는 수열을 제거하는 방식으로 작성 def DFS(L, s): if L == m: for i in range(m): print(res[i], end=' ') print() else: remember = 0 for i in range(s, n): if ch[i] == 0 and remember!=arr[i]: ch[i] = 1 res[L].. 2024. 4. 9.
[백준] 15663번: N과 M (9) - python https://www.acmicpc.net/problem/15663 15663번: N과 M (9) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 아이디어 처음 뿌리를 뻗을때 중복을 제거한 다음 뿌리를 펼칠 생각 그러나 출력은 아래처럼 나와야되지만 내 코드는 1 7 1 9 7 1 7 9 9 1 9 7 9 9 같은 경우의 케이스가 출력이 불가능했다. 1 7 1 9 7 1 7 9 9 1 9 7 문제의 코드 DFS(L): if L == m: for i in range(m): print(res[i], end=' ') print() else: fo.. 2024. 4. 8.
[백준] 15657번: N과 M (8) - python https://www.acmicpc.net/problem/15657 15657번: N과 M (8) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 www.acmicpc.net 이상하게 시리즈가 올라갈수록 쉬운거같은 느낌이.. 아이디어 상태트리에 n개중에 m개를 뽑는데 인덱스를 저장해가면서 인덱스~n까지 상태트리를 만들고 Level이 m에 닿으면 출력해주는 로직. 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] =.. 2024. 4. 8.
728x90