-
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
5209c93
commit 872b0c2
Showing
2 changed files
with
54 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
--- | ||
title: 중복 조합(Java) | ||
date: 2024-03-07 | ||
categories: [Algorithm, 이론] | ||
|
||
tags: [Algorithm, CodingTest] | ||
--- | ||
|
||
## 중복 조합 | ||
조합은 `n`개의 숫자 중에서 `r`개를 뽑아야 할 때 **순서를 고려하지 않고** 뽑는 것을 말합니다. | ||
|
||
오늘 살펴볼 **중복** 조합은 `n`개의 숫자 중에 **중복을 신경쓰지 않고** `r`개를 뽑는 것을 뜻합니다. | ||
|
||
## 구현 방법 | ||
그렇다면 이 중복 조합은 코드 상에서 어떻게 구현할 수 있을까요? | ||
|
||
조합에서는 `boolean[] vistied` 를 사용해서 선택 여부에 대한 조건을 확인했는데요! 중복 조합은 값이 중복으로 들어가도 괜찮기 때문에 선택 여부를 확인할 필요가 없습니다. | ||
|
||
```java | ||
/** | ||
* @param arr 숫자를 뽑아낼 배열 | ||
* @param result 뽑은 숫자 결과가 저장될 리스트 | ||
* @param start 시작이 될 인덱스 | ||
* @param r 뽑고자 하는 숫자의 개수 | ||
*/ | ||
static void duplicatedCombination(int[] arr, ArrayList<Integer> result, int start, int r) { | ||
if(r == 0) { | ||
print(result); | ||
return; | ||
} | ||
|
||
for(int i=start; i<arr.length; i++) { | ||
result.add(arr[i]); | ||
duplicatedCombination(arr, result, i, r-1); | ||
result.remove(result.size()-1); | ||
} | ||
} | ||
|
||
static void print(ArrayList<Integer> result) { | ||
for(int n: result) { | ||
System.out.print(n+ " "); | ||
} | ||
|
||
System.out.println(); | ||
} | ||
``` | ||
|
||
### 결과 | ||
|
||
![1](/assets/img/posts/2024-03-07/result2.png){: width="200"} | ||
|
||
|
||
> 참고 <br> | ||
> https://hanyeop.tistory.com/362 |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.