백준 1759 암호 만들기

bkboy·2022년 5월 30일
0

백준 초급

목록 보기
40/80
post-custom-banner

문제

제한사항

입출력 예

풀이

const input = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n');
let [n, m] = input.shift().split(' ').map(Number);
let str = input.shift().split(' ');
const solution = (n, str) => {
  str.sort();
  let answer = [];
  let visited = new Array(str.length).fill(0);
  let tmp = [];

  const dfs = (index, count) => {
    if (count === n) {
      answer.push(tmp.join(''));
    } else {
      for (let i = index; i < str.length; i++) {
        if (!visited[i]) {
          visited[i] = 1;
          tmp.push(str[i]);
          dfs(i, tmp.length);
          tmp.pop();
          visited[i] = 0;
        }
      }
    }
  };
  dfs(0, 0);
  const moeum = ['a', 'e', 'i', 'u', 'o'];
  let result = [];
  for (let x of answer) {
    let M = x.split('').filter((e) => moeum.includes(e)).length;
    if (M >= 1 && x.length - M >= 2) {
      result.push(x);
    }
  }
  return result.join('\n');
};

console.log(solution(n, str));
  • 조합구하기 문제이다.
  • 조건 몇가지가 추가로 있다.
profile
음악하는 개발자
post-custom-banner

0개의 댓글