-
LeetCode #77. Combinations(조합) 2가지 DFS로 풀어보자!
고민- 이미 사용된 숫자는 어떻게 제외하고, 다음 재귀 시 재활용할 것인가?위 고민에 사로잡혀, 맨처음엔 Queue를 활용하여 풀이 방법 2번으로 풀었다. 하지만 책에서 제안한 풀이법을 보니, 굳이 Queue를 통해 남아있는 숫자를 관리하지 않아도 되고, 단순한 반복을 통해 풀이할 수 있다는 것을 알 수 있었다. 풀이 방법 간의 속도 차이도 큰 편이었다.문제 설명1부터 ( n )까지의 정수에서 ( k ) 개의 숫자를 선택하여 가능한 모든 조합(combination)을 반환하라. 조합은 선택된 원소들의 순서를 고려하지 않는다.입력 및 출력 예시Example 1:Input: n = 4, k = 2Output: [[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]Example..
Java/Algorithm
2024. 8. 6.
-
LeetCode # 347. HashMap과 PriorityQueue, Stream을 이용해 풀어보자
문제. 내용: 빈도순으로 k개의 엘리먼트를 추출하라.Example 1:Input: nums = [1,1,1,2,2,3], k = 2 Output: [1,2]Example 2: Input: nums = [1], k = 1 Output: [1]Constraints: 1 -10^4 `k` is in the range [1, the number of unique elements in the array]. It is guaranteed that the answer is unique.내용 해석1) 정수형 배열 nums와 추출할 갯수 k를 입력받는다.2) nums의 요소별 빈도를 확인하여 빈도순으로 k개 추출 후 해당 요소를 정수형 배열로 반환한다.3) 정수형 배열 nums는 최대 길이 10^5, 배열의 요소 num..
Java/Algorithm
2024. 7. 24.