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]보다 앞에 옵니다.
challenge icon

후속 질문

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

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

테스트 #1

테스트 #2

테스트 #3

인자

nums = [3, 1, 2]

예상 출력

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