[Java] DP – 응용
1. 이항 계수 구하기 가. 이항 계수 조합으로 이항 계수를 구할 수 있다. 위와 같이 일반화할 수 있다. 나. 조합 공식 조합 공식 – 계산량이 많은 팩토리얼(n!, r!)을 계산하지 않고 아래의 수식을 이용한다. 이는 재귀 함수로 구현할 수 있다. 중복되는 계산을 줄이기 위해서 메모이제이션을 활용한다. 순수 함수, 중복 부분문제 구조, 최적 부분문제 구조를 만족하기 때문에 … 더 읽기
1. 이항 계수 구하기 가. 이항 계수 조합으로 이항 계수를 구할 수 있다. 위와 같이 일반화할 수 있다. 나. 조합 공식 조합 공식 – 계산량이 많은 팩토리얼(n!, r!)을 계산하지 않고 아래의 수식을 이용한다. 이는 재귀 함수로 구현할 수 있다. 중복되는 계산을 줄이기 위해서 메모이제이션을 활용한다. 순수 함수, 중복 부분문제 구조, 최적 부분문제 구조를 만족하기 때문에 … 더 읽기
0. 문제 1759번: 암호 만들기 1. 문제 이해 2. 제출 2가지 방식으로 조합을 구현해 보았다. 가. 재귀 함수 나. Next_Permutation 재귀로 푸는 것이 더 좋은 것 같다.
0. 문제 15686번: 치킨 배달 1. 문제 이해 171,600 연산은 아주 여유롭다. (1억 번 연산을 1초라고 가정) 완전탐색으로 푼다. 2. 제출 (240225 추가) 비트마스킹을 이용해서 풀어보았다.
종류 설명 기호 시간복잡도 순열 N개의 원소 중 R개의 원소로 순서를 가진 부분집합을 만드는 경우의 수 nPr O(N!) 조합 N개의 원소 중 R개의 원소로 부분집합을 만드는 경우의 수 nCr O(n! / (r! x (n-r)!)) 부분집합 N개의 원소로 부분집합을 만드는 모든 경우의 수 nHr O(2^N) 1. 순열 가. 반복문 nPr에서 r이 고정되어 있고, 일반적으로 3중 … 더 읽기