//아스키코드
let l = [];
for(let i=65; i<91; i++){
l.push(String.fromCharCode(i));
}
//l에서 랜덤으로 8개 뽑은 후 리턴
function randomItem(a){
let string = [];
while(string.length !== 8){
let b = a[Math.floor(Math.random()*a.length)];
if(!string.includes(b)){
string.push(b);
}
}
let medicine = string.join('');
return medicine;
}
//100개의 다른 의약성분 배열에 저장
let total_medicine = [];
for(let i=0; i<100; i++){
let m = randomItem(l);
if(!total_medicine.includes(m)){
total_medicine.push(m);
}
}
//user_input과 같은 성분이 있는 데이터 result에 저장
const user_input = prompt('입력하세요').split(' ');
let result = [];
for (let i of total_medicine) {
//Set을 이용하여 교집합 구하기
let setUser = new Set(user_input[0]);
let setTotal = new Set(i);
let interSection = new Set([...setUser].filter(x => setTotal.has(x)));
//Set에서는 includes 또는 indexOf 대신 has()를 사용 - 값이 있는지 확인
if(interSection.size === parseInt(user_input[1], 10)){
result.push(i);
}
}
console.log('result',result);
console.log(result.length);