Coding Test/Python

https://www.acmicpc.net/problem/15652 15652번: N과 M (4) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 아이디어 반복문의 범위를 마지막으로 추가된 값부터 N까지로 하고, 마지막으로 추가된 값의 visited를 0으로 변경하면 된다. 전체 코드 N, M = map(int, input().split()) visited = [0] * (N + 1) def bt(nums, visited): if len(nums) == M: for num in nums: print(num, end=" ") print() ..
https://www.acmicpc.net/problem/15651 15651번: N과 M (3) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 아이디어 매 bfs 호출 시에 새로운 visited 리스트를 선언해주었다. 전체 코드 N, M = map(int, input().split()) visited = [0] * (N + 1) def bt(nums, visited): if len(nums) == M: for num in nums: print(num, end=" ") print() return for idx in range(1, N +..
https://www.acmicpc.net/problem/15650 15650번: N과 M (2) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 아이디어 고른 수열은 오름차순이여야 하기 때문에 for 문의 범위를 마지막으로 고른 수 + 1 부터 시작되게 변경하면 된다. 전체 코드 N, M = map(int, input().split()) visited = [0] * (N + 1) def bt(nums, visited): if len(nums) == M: for num in nums: print(num, end=" ") print() re..
https://www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 아이디어 순열을 구하는 문제였다. dfs로 모든 경우의 수를 탐색하면서, 백트래킹으로 겹치는 숫자를 만나지 않게 제외해주면 된다! 전체코드 N, M = map(int, input().split()) visited = [0] * (N + 1) def bt(nums, visited): if len(nums) == M: for num in nums: print(num, end=" ") print() ..
lim.dev
'Coding Test/Python' 카테고리의 글 목록 (6 Page)