문제 LINK
난이도 : medium
Top Like 100
https://leetcode.com/problems/permutations/
내용
Given an array nums of distinct integers, return all the possible permutations.
You can return the answer in any order.
-> 주어진 정수로 만들 수 있는 순열 생성
###
예전에 했었던 순열,조합이 기억이 안난다..
다시 순열/조합 짜는 로직에 대해서 연습해보기.
풀이
접근 : 재귀
방문여부를 check
깊이가 n(nums 배열의 길이)에 도달할 때 int[] addNum 에 담겨진 값을 리스트에 추가
재귀 끝나고 난뒤 방문 여부 체크 해제
class Solution {
static List<List<Integer>> answer;
public List<List<Integer>> permute(int[] nums) {
answer = new LinkedList<>();
boolean[] check = new boolean [nums.length];
int [] addNum = new int [nums.length];
permuteCalc(nums, 0, check, addNum);
return answer;
}
public static void permuteCalc(int [] nums , int d, boolean [] check, int [] addNum){
if(d==nums.length){
List<Integer> res = new ArrayList<>();
for(int i=0;i<nums.length;i++){
res.add(addNum[i]);
}
answer.add(res);
return ;
}
for(int i=0;i<nums.length;i++){
if(!check[i]){
addNum[d] = nums[i];
check[i] = true;
permuteCalc(nums, d+1, check, addNum);
check[i] = false;
}
}
}
}
'알고리즘' 카테고리의 다른 글
[Leetcode] 22. Generate Parentheses - java (0) | 2023.02.23 |
---|---|
[Leetcode] 78. Subsets - Java (0) | 2023.02.22 |
763. Partition Labels - JAVA (0) | 2023.02.16 |
BOJ 18870 좌표압축 - Java (0) | 2021.10.27 |
BOJ 7662 이중 우선순위 큐 - java (0) | 2021.10.15 |