문제https://www.acmicpc.net/problem/2606 풀이해당 문제는 DFS와 BFS 풀이 모두 가능한 문제이다. 간단한 문제이기 때문에 DFS와 BFS를 다시 연습하기 위해 풀이했다. BFS 코드const input = require('fs') .readFileSync(process.platform === 'linux' ? '/dev/stdin' : __dirname + '/example.txt') .toString().trim().split('\n');const n = +input.shift();const linked = +input.shift();const arr = input.map(e => e.split(' ').map(Number));const map = {};const ..
그래프탐색
문제https://level.goorm.io/exam/167345/%EB%8B%A8%ED%92%8D%EB%82%98%EB%AC%B4/quiz/1 구름LEVEL난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다.level.goorm.io 풀이이 문제는 백준의 연구소 문제 시리즈에서 많이 풀었던 그래프 탐색 문제이다. 그래프 탐색을 할 때 큐를 이용해 탐색해야 하는 단풍이 다 열리지 않은 지역을 탐색했는데, 지역의 위치를 구하는데 조심해야 하는 부분은 아침 기준으로 구해야 하기에 while 문에서 계속해서 큐에 위치를 qush해주면 안된다. 위의 조건을 조심해서 풀면 잘 풀 수 있지만, 나는 한가지 경우의 수를 놓쳤다.바로 모두 완벽하게 열린 경우인데, 즉 필드에 있는 모든 값이 0인 경..
문제https://school.programmers.co.kr/learn/courses/30/lessons/43162 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이해당 문제는 DFS를 이용해 모든 조합을 검증해야 하는 문제이다. 코드const solution = (n, computers) => { let answer = 0; const visited = []; const dfs = (idx) => { visited[idx] = true; for (let i = 0; i
문제https://www.acmicpc.net/problem/17142 풀이본 문제는 이전에 풀이했던 연구소 문제의 다른 버전이며, 주어지는 수 만큼 바이러스를 활성화 했을 때 모든 공간에 바이러스가 확산되는 시간의 최소값을 구하는 문제다. 해당 문제에서는 조심해야할 포인트가 있다.바이러스가 확산될 때 비활성 바이러스는 넘어갈 수 있다.(개인적으로 햇갈렸던 부분) 활성화할 바이러스의 조합을 정하는 로직 코드const input = require('fs') .readFileSync(process.platform === 'linux' ? '/dev/stdin' : __dirname + '/example.txt') .toString().trim().split('\n').map(e => e.split(' ..