본문 바로가기

Algorithm705

[DP/동적계획법] 백준 11722 가장 긴 감소하는 부분 수열 - 파이썬(Python) [ Contents ] 1. 문제 (링크 참조) 11722번: 가장 긴 감소하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 감소하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 30, 10, 20, 20, 10} 인 경우에 가장 긴 감소하는 부분 수열은 A = {10, 30, 10, 20, 20, 10} www.acmicpc.net 2. 문제 풀이 가장 길게 감소하는 부분 수열을 찾는 문제입니다. 중간에 이전 원소보다 큰 원소가 나와도, 무시하고 진행할 수 있습니다. 10 30 5 10 25 10 예를 들어, 위 수열은 [30, 25, 10]이 가장 긴 감소수열입니다. 2022.04.12 - [Algorithm] - [DP/동적계획법] 백준 11053 가장 긴 증가하는 .. 2022. 4. 14.
[DP/동적계획법] 백준 11055 가장 큰 증가 부분 수열 - 파이썬(Python) [ Contents ] 1. 문제 (링크 참조) 11055번: 가장 큰 증가 부분 수열 수열 A가 주어졌을 때, 그 수열의 증가 부분 수열 중에서 합이 가장 큰 것을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {1, 100, 2, 50, 60, 3, 5, 6, 7, 8} 인 경우에 합이 가장 큰 증가 부분 수 www.acmicpc.net 2. 문제 풀이 가장 큰 '증가 부분 수열의 합'을 구하는 문제입니다. 1, 5, 3, 20, 13, 100 예를 들어, 위 수열에서 합이 가장 큰 증가 수열의 합은 1+3+20+100 = 124입니다. 2022.02.12 - [Algorithm] - [Algorithm] 메모해두고 불러와서 사용하는 동적 프로그래밍(DP) [Algorithm] 메모해두고 불.. 2022. 4. 13.
[DP/동적계획법] 백준 11053 가장 긴 증가하는 부분 수열 - 파이썬(Python) [ Contents ] 1. 문제 (링크 참조) 11053번: 가장 긴 증가하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이 www.acmicpc.net 2. 문제 풀이 가장 긴 증가 수열을 찾는 문제입니다. 단, 중간에 작은 원소가 있어도 무시할 수 있습니다. 10 20 10 30 20 50 예를 들어, 위 수열의 '가장 긴 증가 수열'은 [ 10, 20, 30, 50 ] 입니다. 2022.02.12 - [Algorithm] - [Algorithm] 메모해두고 불러와서 사용하는 동적 프로.. 2022. 4. 12.
[Brute Force] 백준 15665 N과 M (11) - 파이썬(Python) [ Contents ] 1. 문제 (링크 참조) 15665번: N과 M (11) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 2. 문제 풀이 주어진 수열에서 M개를 뽑을 중복순열을 구하는 문제입니다. itertools.product(lst, repeat=n): lst에서 n개를 중복해서 뽑을 순열 3. 코드 from itertools import product N, M = map(int, input().split()) numlist = list(map(int, input().split())) case = sorted(set(produc.. 2022. 4. 11.
[Brute Force] 백준 15664 N과 M (10) - 파이썬(Python) [ Contents ] 1. 문제 (링크 참조) 15664번: N과 M (10) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 2. 문제 풀이 주어진 수열에서 M개를 뽑는 조합을 구하는 문제입니다. 단, 각 조합은 오름차순으로 출력되어야 합니다. itertools.combinations(lst, n): lst에서 n개를 뽑는 조합 itertools 라이브러리의 combinations 함수를 이용하면 쉽게 구할 수 있습니다. 3. 코드 from itertools import combinations N, M = map(int, input().. 2022. 4. 10.
[Brute Force] 백준 15663 N과 M (9) - 파이썬(Python) [ Contents ] 1. 문제 (링크 참조) 15663번: N과 M (9) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 2. 문제 풀이 주어진 수열에서 M개를 뽑는 순열을 구하는 문제입니다. 다만, 중복되는 순열을 여러 번 출력해선 안됩니다. itertools.permutations(lst, n): lst에서 n개를 뽑는 순열 위 함수를 사용하면 쉽게 순열을 구할 수 있습니다. 주어진 수열에서 순열을 구하고, 중복되는 순열만 set으로 제거해줍니다. 3. 코드 from itertools import permutations N, M .. 2022. 4. 9.
[Brute Force] 백준 15656 N과 M (7) - 파이썬(Python) [ Contents ] 1. 문제 (링크 참조) 15656번: N과 M (7) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 www.acmicpc.net 2. 문제 풀이 주어진 수열에서 M개를 뽑는 중복순열을 구하는 문제입니다. 중복순열은 itertools.product() 함수를 이용해서 쉽게 구할 수 있습니다. itertools.product(lst, repeat=n): lst에서 n개를 중복 허용해서 뽑는 순열 3. 코드 from itertools import product N, M = map(int, input().split()) numlist = l.. 2022. 4. 8.
[Brute Force] 백준 15655 N과 M (6) - 파이썬(Python) [ Contents ] 1. 문제 (링크 참조) 15655번: N과 M (6) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 www.acmicpc.net 2. 문제 풀이 주어진 수열에서 M개를 뽑는 조합을 구하는 문제입니다. itertools.combinations(lst, n): lst에서 n개를 뽑는 조합 itertools 라이브러리의 combinations() 함수를 사용하면 쉽게 구할 수 있습니다. 3. 코드 from itertools import combinations N, M = map(int, input().split()) numlist = li.. 2022. 4. 7.
[Brute Force] 백준 15651 N과 M (3) - 파이썬(Python) [ Contents ] 1. 문제 (링크 참조) 15651번: N과 M (3) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 2. 문제 풀이 수열에서 M개를 뽑는 중복 순열을 구하는 문제입니다. 중복 순열은 itertools의 product() 함수를 이용해서 구할 수 있습니다. 3. 코드 from itertools import product N, M = map(int, input().split()) case = product(range(1, N+1), repeat=M) for i in case: for j in i: print(j, e.. 2022. 4. 6.