2022년 2월 13일 일요일 - 오늘은 데이트~


오늘 올려볼 문제는 78번 Subsets 이라는 문제이다.


사진을 클릭하면 해당 문제로 이동합니다.

leetcode 문제 사진

오늘도 LeetCode 사이트 오늘의 문제를 가지고 왔다.

아니 List 작동 방식 이상해...


입력


사진에서도 볼 수 있듯이 int 배열 하나가 주어진다.



풀이 및 코드


int 배열의 subsets들을 모두 구하는 문제이다.


오늘은 처음부터 정답을 생각해냈다.

전형적인 백트래킹 문제여서 별다른 설명은 하지 않겠다.


이제 코드를 봐보자!


풀이코드

class Solution {
    List<List<Integer>> result = new ArrayList<List<Integer>>();
    Stack<Integer> arr = new Stack<Integer>();
    public List<List<Integer>> subsets(int[] nums) {
        solve(nums, 0);

        return result;
    }

    public void solve(int[] nums, int index)
    {
        if(index == nums.length)
        {
            result.add(new ArrayList(arr));
            return;
        }

        solve(nums, index + 1);

        arr.push(nums[index]);

        solve(nums, index + 1);

        arr.pop();
    }
}



제출 화면

leetcode 문제 맞았습니다


오늘은 java의 List가 이상하게 동작하는 바람에 조금 시간이 걸렸던 문제였다.

그래도 쉽게 문제를 풀어서 다행이었다.


내일도 문제를 풀어서 블로그에 글을 쓸 수 있으면 좋겠다.

+ Recent posts