[코드트리][Python] 수들 중 최솟값 최대화하기
·
코드트리
https://www.codetree.ai/trails/complete/curated-cards/test-maximin-of-numbers/description Code Tree | Learning to Code with ConfidenceA super-comprehensive, meticulously arranged Coding Learning Curriculum engineered by Algorithm Experts composed of former International Olympiad in Informatics (IOI) medalists.www.codetree.ai 코드 (백 트래킹)n = int(input())grid = [list(map(int, input().split())) for _..
[백준][Python] 15663번 N과 M (9) - 코팩
·
백준/백트래킹
https://www.acmicpc.net/problem/15663 15663번: N과 M (9) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 풀이 백트래킹 N과 M 시리즈 문제입니다. 순열 문제이며 사전순으로 출력하지않아도 됩니다. for문을 유용하게 사용하기 위해 visited로 방문한 숫자를 마킹해주었습니다. # 15663번 N과 M (9) n, m = map(int, input().split()) nums = list(map(int, input().split())) nums.sort() ans = [] visited = [Fal..
[백준][Python] 15654번 N과 M (8) - 코팩
·
백준/백트래킹
https://www.acmicpc.net/problem/15657 15657번: N과 M (8) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 www.acmicpc.net 풀이 백트래킹 N과 M 시리즈 중 한 문제입니다. 중복 조합을 구현해주세요. # 15657번 N과 M (8) import sys sys.setrecursionlimit(10000) N, M = map(int, input().split()) nums = list(map(int, input().split())) nums.sort() ans = [] def printAns(): print(*a..
[백준][Python] 15654번 N과 M (5) - 코팩
·
백준/백트래킹
https://www.acmicpc.net/problem/15654 15654번: N과 M (5) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 www.acmicpc.net 풀이 백트래킹 N과 M 시리즈 문제입니다. 조합을 구현해주시면 됩니다. # 15654번 N과 M (5) import sys sys.setrecursionlimit(10000) N, M = map(int, input().split()) nums = list(map(int, input().split())) nums.sort() ans = [] visited = [False] * N def p..
[백준][Python] 15652번 N과 M (4) - 파이썬
·
백준/백트래킹
https://www.acmicpc.net/problem/15652 15652번: N과 M (4) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 풀이 백트래킹을 사용하여서 중복조합을 구현해주면 되는 문제입니다. 백트래킹을 구현하기 위해서는 재귀함수를 사용해줘야합니다. 재귀함수 호출 구문과 재귀함수 종료 구문을 잘 만들어놔야합니다. # 15652 N과 M (4) import sys sys.setrecursionlimit(10000) N, M = map(int, input().split()) ans =[] def print_ans(): sy..
[백준] 15650번 N과 M (2) - 파이썬
·
백준/DFS&BFS
https://www.acmicpc.net/problem/15650 15650번: N과 M (2) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 풀이 백트래킹 알고리즘에 대해 배울 수 있는 N과 M 시리즈의 2번째 문제입니다. 1번째 문제와 달라진 점은 start 인자를 넣어주어서 for문에서 현재 arr들어가있는 숫자보다 작은 숫자는 들어가지않게 해주는 코드입니다. # 15650번 N과 M (2) n, m = map(int, input().split()) arr = [] def dfs(start): if len(arr) == m: pr..
[백준] 15649번 N과 M (1) - 파이썬
·
백준/DFS&BFS
https://www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 풀이 DFS의 일종인 백트래킹 알고리즘입니다. 사실상 백트래킹은 구현문제에 가깝습니다. 생각하기는 쉬우나 코드를 제어해주는 부분을 막상 작성하려하면 마음처럼 되지않을 경우가 많습니다. 아래 코드는 arr에 숫자를 하나씩 넣어줘서 조건에 만족하는 m이 나올 경우 출력해주는 코드이며, for문을 통해 arr에 들어가지않은 코드를 찾아줍니다. 재귀와 백트래킹에 대한 이해도가 요구되는 문제입니다. # ..
개발자 성현