일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 28 |
29 | 30 | 31 |
Tags
- Spring Boot
- laravel
- Oracle
- elasticsearch
- db
- php
- MySQL
- Spring
- Spring Batch
- linux
- ReactJS
- redis
- it
- ubuntu
- devops
- jenkins
- 맛집
- Gradle
- Web Server
- JVM
- 요리
- java
- Design Patterns
- jsp
- AWS
- springboot
- javascript
- IntelliJ
- tool
- Git
Archives
- Today
- Total
아무거나
조합(=combination) 구하기 본문
반응형
조합(combination) 구하기
public static void main(String[] args) {
String[] testArgs = {"001", "002", "003", "004"};
List<List<String>> powerSet = new LinkedList<>();
for (int i = 1; i <= testArgs.length; i++) {
powerSet.addAll(combination(Arrays.asList(testArgs), i));
}
System.out.println(powerSet);
}
public static <T> List<List<T>> combination(List<T> values, int size) {
if (0 == size) {
return Collections.singletonList(Collections.emptyList());
}
if (values.isEmpty()) {
return Collections.emptyList();
}
List<List<T>> combination = new LinkedList<>();
T actual = values.iterator().next();
List<T> subSet = new LinkedList<T>(values);
subSet.remove(actual);
List<List<T>> subSetCombination = combination(subSet, size - 1);
for (List<T> set : subSetCombination) {
List<T> newSet = new LinkedList<T>(set);
newSet.add(0, actual);
combination.add(newSet);
}
combination.addAll(combination(subSet, size));
return combination;
}
반응형
'Java & Kotlin > Java' 카테고리의 다른 글
[Swagger] java.lang.NumberFormatException: For input string 오류 표시 해결 (1) | 2020.05.30 |
---|---|
Stream 정렬 관련 Example (0) | 2020.05.28 |
[Design Pattern] Command Pattern (0) | 2020.01.12 |
[Design Pattern] Proxy Pattern (0) | 2020.01.12 |
[Design Pattern] Flyweight Pattern (0) | 2020.01.12 |
Comments