반응형 분류 전체보기252 [백준][Python] 15652번 N과 M (4) 15652번: N과 M (4) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 코드 n,m = map(int,input().split()) s = [] def dfs(num): if len(s) == m: print(*s) return for i in range(num,n+1): s.append(i) dfs(i) s.pop() dfs(1) 2022. 8. 1. [백준][Python] 15651번 N과 M (3) 15651번: N과 M (3) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 코드 n,m = map(int,input().split()) s = [] def dfs(): if len(s) == m: print(*s) return for i in range(1,n+1): s.append(i) dfs() s.pop() dfs() 설명 같은 수를 여러번 골라도 되기 때문에 원래 코드에서 중복을 방지하는 visit[]를 없앴다. 2022. 8. 1. [백준][Python] 15650번 N과 M (2) 15650번: N과 M (2) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 코드 n, m = map(int,input().split()) s = [] visit = [False] * (n+1) def dfs(): if len(s) == m: print(*s) return for i in range(1,n+1): if visit[i] == False: if s: if s[-1] < i: visit[i] = True s.append(i) dfs() s.pop() visit[i] = False else: visit[i] = True s.ap.. 2022. 7. 29. [백준][Python] 15649번 N과 M (1) 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 코드 n, m = map(int,input().split()) s = [] visit = [False] * (n+1) def dfs(): if len(s) == m: print(*s) return for i in range(1,n+1): if visit[i] == False: visit[i] = True s.append(i) dfs() s.pop() visit[i] = False dfs() 설명 백트래킹 문제는 처음 풀어봐서 다른 사람들의 풀이를 참고했다. DF.. 2022. 7. 29. 이전 1 ··· 24 25 26 27 28 29 30 ··· 63 다음 반응형