백준 6603 로또 (조합)

bkboy·2022년 6월 16일
0

백준 중급

목록 보기
5/31

문제

제한 사항

입출력 예

풀이

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를 사용 할 수 있다.
profile
음악하는 개발자

0개의 댓글