'순열' 태그의 글 목록 (5 Page)
본문 바로가기
728x90
반응형

순열21

순열의 모든것 풀어봅시다 순열은 무엇일까요? 재귀를 이용하여 순열을 뽑기 전에 순열은 어떤 모양을 가지고 있는지 알아야 함으로 어떻게 생겼는지 먼저 알아봅시다. 순열은 Permutation 으로 nPr n개의 나열된 숫자에서 r개를 뽑는 것을 말합니다. 예를 들어 1, 2, 3, 4 의 숫자에서 2개의 숫자를 뽑는다면 경우는 위와 같이 같은 숫자를 가진 집합이 존재하면서 뽑히게 됩니다. 1 2와 2 1이 같은 경우로 치지 않고 뽑히는 경우 달라진다면 순열로 뽑는것이 옳고 1 2와 2 1이 같은 것이라면 조합으로 뽑아야 시간을 줄일 수 있겠죠? 조합은 위에 말한것처럼 순열의 반의 가짓수를 뽑는다고 생각하시면 좀 더 이해하기 쉬울 것 같습니다. ㅇ 조합에 대한 이야기는 다음 블로그 글을 참조하시면 됩니다. https://www.ac.. 2019. 8. 20.
백준 1182 부분수열의 합 https://www.acmicpc.net/problem/1182 1182번: 부분수열의 합 첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 20, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100,000을 넘지 않는다. www.acmicpc.net 부분 수열 이문제는 1개부터 N개까지 모든 경우를 뽑아내서 더해서 합이 S와 같은 갯수가 몇개 인지 세면되는데 비트로 생각하면 이렇게 뽑히면 되는겁니다. 이렇게 해서 1인부분의 합이 S가 되는 것을 세면 되는 문제로 엄청 쉬워집니다. 무튼 오늘은 아래 소스가 로또 문제랑 비슷하니 로또 문제도 풀어보시고 이문제도 풀어보시면 좋을것 같습니다. 1 2 3 4 5 6 .. 2019. 7. 24.
백준 6603 로또 https://www.acmicpc.net/problem/6603 6603번: 로또 문제 독일 로또는 {1, 2, ..., 49}에서 수 6개를 고른다. 로또 번호를 선택하는데 사용되는 가장 유명한 전략은 49가지 수 중 k(k>6)개의 수를 골라 집합 S를 만든 다음 그 수만 가지고 번호를 선택하는 것이다. 예를 들어, k=8, S={1,2,3,5,8,13,21,34}인 경우 이 집합 S에서 수를 고를 수 있는 경우의 수는 총 28가지이다. ([1,2,3,5,8,13], [1,2,3,5,8,21], [1,2,3,5,8,34], [1,2 www.acmicpc.net 문제에 보면 모든순열같이 숫자를 배치하는 것은 비슷하지만 대신 오름차순으로만 된것을 뽑아야합니다. 그렇게 하려면 탈출조건을 위해 idx 한개.. 2019. 7. 24.
백준 10973 이전 순열 https://www.acmicpc.net/problem/10973 10973번: 이전 순열 첫째 줄에 입력으로 주어진 순열의 이전에 오는 순열을 출력한다. 만약, 사전순으로 가장 처음에 오는 순열인 경우에는 -1을 출력한다. www.acmicpc.net 이전 순열은 아래와 같이 prev_mutation을 이용해서 아주 간단히 구현이 가능합니다 하지만 규칙을 찾아 하는 방법도 있으니 알아볼까요? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 #include #include using namespace std; int ret[10004]; int N; void init() { scanf("%d", &N); for (int i.. 2019. 7. 23.
728x90
반응형