DFS

문제링크https://www.acmicpc.net/problem/10026 문제풀이적록색약이 아닌 사람이 보는 NxN Grid 2차원배열(map1 > R,G,B 모두 존재) 과  적록색약이 보는 NxN Grid 2차원배열(map2 > G,B만 존재 )  를 각각 만든뒤 두 2차원 배열을 탐색(bfs, dfs) 하면서 그룹핑하면 색상 영역의 수를 도출할 수 있다.   let fs = require("fs");let input = fs.readFileSync("/dev/stdin").toString().trim().split("\n");let N = Number(input.shift());let map1 = [];let map2 = [];let map1GroupCnt = 0;let map2GroupCnt =..
문제링크https://www.acmicpc.net/problem/21736 문제풀이dfs로 접근하여 풀 수 있었다.한번 지나갔던 장소는 map[row][column] = 'X' 로 표기하였다.  //https://www.acmicpc.net/problem/15663// TEST CASE// let data = "3 5\nOOOPO\nOIOOX\nOOOXP";// let input = data.toString().trim().split("\n");let fs = require("fs");let input = fs.readFileSync("/dev/stdin").toString().trim().split("\n");let [N, M] = input.shift();// 캠퍼스 지도를를 2차원 배열로 생성let..
문제링크https://www.acmicpc.net/problem/15663 문제풀이-  dfs로 탐색하면서 동시에 백트래킹으로 효율성을 최대화 했다.  - Set 객체를 이용하여 중복을 방지하였다.let fs = require("fs");let input = fs.readFileSync("/dev/stdin").toString().trim().split("\n");let [N, M] = input[0].split(" ").map((n) => Number(n));let arr = input[1].split(" ").map((n) => Number(n));// 정렬arr.sort((a, b) => a - b);let set = new Set([]);// 숫자 세트를 담을 arraylet group = [];..
문제https://www.acmicpc.net/problem/15654 풀이let fs = require("fs");let input = fs.readFileSync("/dev/stdin").toString().trim().split("\n");let [N, M] = input .shift() .split(" ") .map((n) => Number(n));let num_arr = input[0].split(" ").map((n) => Number(n));// 정렬num_arr.sort((a, b) => a - b);let dfs = (arr, picked) => { if (arr.length === M) { console.log(arr.join(" ")); ..
문제https://www.acmicpc.net/problem/15652 풀이dfs 이용해서 풀 수 있었다.let fs = require("fs");let input = fs.readFileSync("/dev/stdin").toString().trim();let [N, M] = input.split(" ").map((n) => Number(n));const dfs = (start, arr) => { if (arr.length === M) { console.log(String(arr.join(" "))); return; } for (let i = start; i
🔥문제링크https://school.programmers.co.kr/learn/courses/30/lessons/43163 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 🔥풀이일단 스펠링이 하나만 다른 경우만 단어 변환이 가능하므로 이동가능한 word인지를 확인 하는 함수 can_convert를 정의하여 이를 이용했다. 그리고 재귀함수의 방법을 통해 tagert으로 이동 가능한 모든 경우의수를 깊이우선탐색 방식으로 탐색하면서 목표로한 target 문자열로 변경이 됐을 경우를 포착하고 몇번이동했는지를 현재 최솟값과 비교하여 더 작게 이동했다면 최솟값을 up..
🔥문제링크https://school.programmers.co.kr/learn/courses/30/lessons/154540 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 🔥첫번째 시도 (런타임 에러) 호기롭게 풀었지만 런타임 에러... 🤔function solution(maps) { var answer = []; // visit 관련 map const visit_map = maps.map((str,x)=>{ let temp = [] for(let y=0; y{ const [x,y] = positio..
devWarrior
'DFS' 태그의 글 목록