부분 문자열 (Substring)
부분 문자열은 원래 문자열의 연속된 일부 문자를 의미합니다. 부분 문자열은 원래 문자열에서 문자들을 선택하거나 선택하지 않고 구성될 수 있습니다. 원래 문자열의 순서를 유지하면서 문자들을 연속적으로 선택하거나 제외하여 만들 수 있는 모든 가능한 문자열을 말합니다.
예를 들어, "abc"라는 문자열의 부분 문자열은 ””, "a", "b", "c", "ab", "bc", "ac", "abc” 입니다.
The length of the string (n) is n
Total substrings = n * (n + 1) / 2
순열 (Permutation)
순열은 원래 문자열의 문자들로 만들 수 있는 모든 가능한 순서를 가지는 문자열입니다. 즉, 원래 문자열의 문자들을 모두 사용하여 만들 수 있는 모든 순서를 나타냅니다. 순열은 순서가 다르면 다른 문자열로 취급됩니다.
예를 들어, "abc"라는 문자열의 순열은 "abc", "acb", "bac", "bca", "cab", "cba" 입니다.
The length of the string (n) is n
The number of elements to be selected is r Total permutations = n! / (n - r)!
수학에서의 조합 (Combination)
조합은 원래 문자열에서 일부 문자를 선택하여 만들 수 있는 모든 가능한 조합을 나타냅니다. 조합은 순서에 관계없이 문자들을 선택하여 만들어지며, 순서가 중요하지 않습니다.
예를 들어, "abc"라는 문자열의 조합은
- 길이 0 (빈 문자열): ""
- 길이 1: "a", "b", "c"
- 길이 2: "ab", "ac", "bc"
- 길이 3: "abc"
이며, 조합은 순서가 중요하지 않습니다. 즉, "ab"와 "ba"는 동일한 조합으로 취급됩니다.
표기법: n C r
n: 전체 요소의 수
r: 선택해야 하는 요소의 수
계산식: Total combinations = n! / (r! * (n - r)!)
비밀번호나 자물쇠에서의 조합 (Combination)
자물쇠의 비밀번호나 코드 등을 만드는 맥락에서 "조합"은 주어진 선택지에서 원하는 개수만큼 선택하는 모든 가능한 경우의 수를 의미합니다. 중복이 허용되는 경우와 허용되지 않는 경우가 있을 수 있습니다.
중복이 허용되는 경우
자물쇠가 3자리 숫자를 가지고 각 자리는 0부터 9까지의 숫자를 가질 수 있다고 가정해봅시다. 이 경우 가능한 "조합"은 10^3, 즉 1000가지입니다.
중복이 허용되지 않는 경우
첫 번째 자리에는 3개의 선택지가 있고, 두 번째 자리에는 남은 2개 중 하나를 선택할 수 있으며, 세 번째 자리는 남은 하나를 선택해야 합니다. 따라서 가능한 모든 조합은 3 * 2 * 1 = 6가지가 됩니다. 이는 팩토리얼과 같습니다.
'old > Programming' 카테고리의 다른 글
Java 메소드 매개변수 참조 변경 불가: 왜 그럴까요? (0) | 2023.07.03 |
---|---|
backtracking 알고리즘이란? (0) | 2023.07.02 |
자바연산자 >>>와 >>의 차이점 (0) | 2023.06.22 |
SQL Operator Precedence Table (0) | 2023.06.22 |
무료 자바 설치 하는 법 (0) | 2023.06.22 |