문제 정의
주어진 세트의 전원 세트를 인쇄하십시오. 예를 들면 다음과 같습니다.
[1, 2, 3] => [[], [1], [2], [3], [1, 2], [1, 3], [2, 3], [1, 2, 3]]
각 요소는 별도의 줄에 인쇄되므로 위의 예는 다음과 같이 인쇄됩니다.
[]
[1]
[2]
...
[1, 2, 3]
예제 코드 (D에서 파이썬 예제는 여기 ) :
import std.stdio;
string[][] powerset(string[] set) {
if (set.length == 1) {
return [set, []];
}
string[][] ret;
foreach (item; powerset(set[1 .. $])) {
ret ~= set[0]~item;
ret ~= item;
}
return ret;
}
void main(string[] argv) {
foreach (set; powerset(argv[1 .. $]))
writeln(set);
}
입력
요소는 인수로 전달됩니다. 예를 들어, 위에 제공된 예제는 다음과 같은 프로그램으로 전달 powerset
됩니다.
powerset 1 2 3
인수는 영숫자입니다.
규칙
- io 이외의 라이브러리는 없습니다
- 출력을 주문할 필요는 없습니다
- 전원을 저장할 필요가없고 인쇄 만 가능
- 세트의 요소는 예를 들어 (구분해야
1,2,3
,[1,2,3]
및['1','2','3']
허용하지만123
아니다- 후행 구분 기호가 정상입니다 (예를 들어
1,2,3, == 1,2,3
)
- 후행 구분 기호가 정상입니다 (예를 들어
- 최고 는 바이트 수에 따라 결정됩니다.
최상의 솔루션은 첫 번째 제출 후 10 일 이내에 결정됩니다.
lambda L:reduce(lambda r,x:r+[s+[x]for s in r],L,[[]])
입니다.