Toy Problem 11 #

1618 ワード

11_powerSet
これをベースに近づいてきました.

1. 문제 흐름 파악 -> 문제에서 나에게 어떤 상황이 주어졌는가?
                  'abcd' 입력받음 . -> 이것을 부분집합화함. 
                  ['a', 'b','c','d','ab' 'cd', 'ac','ad','bd' 'bc' ...]
                  // 반복문 로직이 어떻게되었지 ? 
                  a b c d a b c d 이렇게 만 뽑힘.. 
                  
                  반복문으로 하나씩 뽑고나서 result = []에 하나씩 푸쉬 해줌]
                  그리고나서 조건문 result.includes() ===false 이면,  푸쉬 아니면 안넣어줌. 


しましたが、私が望むように繰り返すことはありませんでした.ホワイトドアを使うのかな...?それとも他の方法がありますか?
コメントを見てみましょう...

const powerSet = function (str) {
  // 정렬
  const sorted = str.split('').sort();

  // 중복 제거
  const deduplicated = sorted.reduce((acc, item) => {
    if (acc[acc.length - 1] === item) {
      return acc;
    } else {
      return acc.concat(item);
    }
  });

  let subSets = [];
  const pickOrNot = (idx, subset) => {
    // base case
    if (idx === deduplicated.length) {
      // 마지막 문자까지 검토한 경우
      subSets.push(subset);
      return;
    }

    // recursive case
    // idx번째 문자가 포함되지 않는 경우
    pickOrNot(idx + 1, subset);

    // idx번째 문자가 포함되는 경우
    pickOrNot(idx + 1, subset + deduplicated[idx]);
  };

  pickOrNot(0, '');

  return subSets.sort();
};
次に、コンソールで確認した結果です.

ろんり


1)データをタイリングする
2)重複する要素の削除
3)