Menu
CoddyTech

Subsets

서로 다른 정수로 이루어진 목록 nums가 주어집니다. 빈 부분집합과 전체 목록을 포함하여 모든 부분집합을 반환하세요. 따라서 n개의 값은 2^n개의 부분집합을 만듭니다. 각 부분집합의 값은 오름차순으로 정렬하고, 부분집합은 사전식 순서로 나열하세요. 두 부분집합을 값별로 비교하여 처음 다른 값으로 순서를 정하고, 한 부분집합이 다른 부분집합의 시작 부분이면 먼저 옵니다. [1, 2]의 경우 답은 [[], [1], [1, 2], [2]]입니다.

함수

subsets(nums: integer-array) → integer-2d-array
numsinteger-array
순서는 상관없으며, 모두 서로 다른 값
반환값integer-2d-array
각 부분집합은 오름차순으로 정렬되고, 사전순으로 나열됩니다

제약 조건

  • 1 ≤ nums.length ≤ 10
  • -10 ≤ nums[i] ≤ 10
  • nums의 모든 값은 서로 다릅니다.
  • nums는 어떤 순서로든 주어질 수 있습니다.

예제

입력
nums = [3, 1, 2]
출력
[[], [1], [1, 2], [1, 2, 3], [1, 3], [2], [2, 3], [3]]
설명
정렬하면 값은 1, 2, 3이고, 값이 세 개이므로 부분집합은 2^3 = 8개입니다. [1, 2]는 [1, 2, 3]의 시작 부분이므로 그 앞에 오고, 두 번째 위치에서 2가 3보다 작으므로 [1, 2, 3]은 [1, 3]보다 앞에 옵니다.

lock icon제출 시 숨은 테스트 +13개

challenge icon

후속 질문

재귀를 사용하지 않고, 바로 이전 부분 집합에서 각 부분 집합을 직접 만들어 같은 목록을 생성할 수 있나요?

코드 초기화
def subsets(nums):
    # 여기에 코드를 작성하세요
테스트 케이스

케이스 1

케이스 2

케이스 3

입력

nums = [3, 1, 2]

기대값

[[], [1], [1, 2], [1, 2, 3], [1, 3], [2], [2, 3], [3]]