목록전체 글 (245)
말랑한 하루
[ 학습 내용 ] 정규표현식 활용 및 얕은복사 필요성 [ 소스 코드 ] function solution(user_id, banned_id) { var answer = 0; var list_all = []; function matches(u_id, b_id) { var pattern = b_id.replace(/\*/g, "."); var reg = new RegExp(`\^${pattern}\$`); return reg.test(u_id); } function dfs(list_id, ban_idx, cnt) { if (cnt === banned_id.length) { list_all.push([...list_id]); return; } for(var i=0; i list.sort().join(""))))..
자주 사용하는 정규표현식 관련 MDN 정리 var pattern = /pattern/flags; var regex = new RegExp(pattern); [ Methods ] //uselly test(): 문자열에 일치하는 부분 확인, return true/false; //unuselly exec(): 문자열에 일치하는 부분 탐색, return []/null; match(): 캡처그룹 포함 모든일치 확인, return []/null; matchAll(): 캡처그룹 포함 모든일치 확인, return 반복기 반환 //string search(): 문자열에 일치하는 부분 탐색, return index/-1; replace(): 문자열에 일치하는 부분 탐색, 첫 문자 대체문자열로 변환 replaceAll():..
[ 학습 내용 ] Map() 1. 생성 var map = new Map(); 2. key-value 삽입 및 삭제 map.set("key", "value"); map.delete("key"); 3. 요소 순회 // forEach 구문을 활용해 value, key 사용하기 map.forEach((value, key, map) => { console.log(); }, thisArg) // map의 item을 순회, map은 삽입 및 삭제에 순서가 유지됨 var iterator_key = map.keys(); var iterator_values = map.values(); var iterator_keys_values = map.entires(); for(var i=0; i { gem_map.delete(gem..
[ 개요 ] 풀이시간 : 70분 [ 학습 내용 ] JS에서 조합, 순열 구현을 기반으로 풀이를 진행 [ 소스 코드 ] function splitExpression(ex) { var exs = []; var oper = new Set(); var idx = 0; for(var i=0; i ex.charCodeAt(i) || ex.charCodeAt(i) > "9".charCodeAt(0)) { exs.push(parseInt(ex.slice(idx, i))); exs.push(ex[i]); oper.add(ex[i]); idx = i + 1; } } exs.push(parseInt(ex.slice(idx))); return [exs, Array.from(oper)]; } function getPermuta..
※ JavaScript const getPermutations = function (arr, select) { const results = []; if (select === 1) return arr.map((el) => [el]); arr.forEach((fixed, index, origin) => { const rest = [...origin.slice(0, index), ...origin.slice(index + 1)]; const permutations = getPermutations(rest, select - 1); const attached = permutations.map((el) => [fixed, ...el]); results.push(...attached); }); return resul..
※ JavaScript const getCombinations = function (arr, select) { const results = []; if (select === 1) return arr.map((el) => [el]); arr.forEach((fixed, index, origin) => { const rest = origin.slice(index + 1); const combinations = getCombinations(rest, select - 1); const attached = combinations.map((el) => [fixed, ...el]); results.push(...attached); }); return results; }
[ 개요 ] 풀이시간 : 92분 [ 학습 내용 ] 간단한 bfs로 진행했으나, JS에서 4방향 처리에 대해 고민해봐야겠다. var d = [{"x":0, "y":1},{"x":0, "y":-1},{"x":1, "y":0},{"x":-1, "y":0}] 다음처럼 처리하였으나, 2차원 배열로 선언하는게 덜 귀찮을것 같음 [ 소스 코드 ] function solution(places) { var answer = []; var peoples; answer = places.map((place) => { peoples = []; place.forEach((line, index) => { var tables = line.split(""); tables.forEach((table, idx) => { if(table =..