[백준 1759번] 백트레킹 - 암호 만들기

김민지·2023년 11월 5일
0

냅다 시작 백준

목록 보기
108/118

✨ 문제 ✨

✨ 정답 ✨

const { notDeepEqual } = require("assert");
const { count } = require("console");
const fs = require("fs");
const { nextTick } = require("process");
const { start } = require("repl");
const filePath = process.platform === "linux" ? "/dev/stdin" : "./예제.txt";
let input = fs.readFileSync(filePath).toString().trim().split('\n');


// const fs = require('fs'); 
// let input = fs.readFileSync("/dev/stdin").toString().trim().split('\n');

const [L,C]=input.shift().split(' ').map((el)=>+el);
const alphabets=input.shift().split(' ').sort();
let vowelsArray=['a', 'e', 'i', 'o', 'u']

let answers=[];
const DFS=(candidate, index)=>{
    if (candidate.length===L){
        // 최소 한 개의 모음, 최소 두 개의 자음
        let vowels=0;
        let consonants=0;
        let splitCandidate=[...candidate]
        splitCandidate.forEach((el)=>vowelsArray.includes(el)? vowels+=1:consonants+=1);
        if (vowels>=1 && consonants>=2){
            answers.push(candidate);
        }
    }else{
        for(let i=index;i<C;i++){
            DFS(candidate+alphabets[i],i+1)
        }
    }

}

DFS('',0)
console.log(answers.join('\n'))

🧵 참고한 정답지 🧵

💡💡 기억해야 할 점 💡💡

profile
이건 대체 어떻게 만든 거지?

0개의 댓글