문제
제한 사항
입출력 예
풀이
const input = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n');
const combinations = function* (elements, selectNumber) {
for (let i = 0; i < elements.length; i++) {
if (selectNumber === 1) {
yield [elements[i]];
} else {
const fixed = elements[i];
const rest = combinations(elements.slice(i + 1), selectNumber - 1);
for (const a of rest) {
yield [fixed, ...a];
}
}
}
};
for (let x of input) {
const [n, ...cur] = x.split(" ").map(Number);
for (let numbers of combinations(cur, 6)) {
console.log(numbers.join(" "));
}
console.log();
}
- 제너레이터 함수를 이용한 풀이
- 제너레이터 함수의 반환 값이 이터러블 이기 때문에 for of를 사용 할 수 있다.