-
[못풀었다/프로그래머스] 불량사용자코딩테스트 2023. 6. 9. 14:30
function solution(user_id, banned_id) { const set = new Set() const banIdCopy = banned_id.slice() const selected = Array.from({length:user_id.length},()=>false) const isChecked = (bannedId,userId) => { if(bannedId.length!==userId.length) return false; else {for(let i=0;i<bannedId.length;i++){ if(bannedId[i]!=='*'&&bannedId[i]!==userId[i]){ return false } }} return true; } //bannedId가 끝날때까지 dfs로 돌면서, 이미 사용한 user_id는 지워줘야함. const dfs = (banIdCopy, arr = []) => { if (banIdCopy.length === 0) { set.add(arr.sort().join(',')); } else { for (let i = 0; i < user_id.length; i++) { if (selected[i]) { continue; } if (isChecked(banIdCopy[0],user_id[i])) { selected[i] = true; dfs(banIdCopy.slice(1), [...arr, user_id[i]]); selected[i] = false; } } } }; dfs(banIdCopy) return set.size }
'코딩테스트' 카테고리의 다른 글
[릿코드/문제잘보기] 744. Find Smallest Letter Greater Than Target (0) 2023.06.09 [다시풀기/프로그래머스] 이분탐색 (0) 2023.06.09 [프로그래머스] 보석쇼핑 (1) 2023.06.09 [예외처리못함/프로그래머스] 베스트앨범 (0) 2023.06.07 [못풀었다/프로그래머스] 단속카메라 (0) 2023.06.06