[JavaScript/프로그래머스] 그래프 - 방의 개수
·
Coding Test/Programmers_JavaScript
문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 코드 번호에 따른 이동 방향을 미리 정해두고 대각선 방향의 경우에는 두 번에 걸쳐 이동하도록 설계하였습니다. function solution(arrows) { let answer = 0; // 방의 개수를 저장할 변수 // 각 방향에 따른 좌표 변화를 저장한 배열 // prettier-ignore const move = [ [-1, 0], [-1, 1], [0, 1], [1, 1], [1, 0], [1, -1], [0, -1], [-1, -1] ]; let vertexVisited = new ..
[JavaScript/프로그래머스] 그래프 - 순위
·
Coding Test/Programmers_JavaScript
문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 코드 Array.from()을 이용하여 초기에 크기가 정해진 배열을 생성해두는 데 사용하였습니다. function solution(n, results) { let answer = 0; // 정확하게 순위를 매길 수 있는 선수의 수를 저장하는 변수 // n+1 크기의 2차원 배열 생성. 모든 값은 false로 초기화 let graph = Array.from({ length: n + 1 }, () => Array(n + 1).fill(false)); // results 배열을 순회하며 승리한 선수..
[JavaScript] 깊이 우선 탐색, DFS(Depth-First Search)
·
Development Study/Algorithm
DFS, Depth-First Search라고 불리는 이 깊이 우선 탐색은 대표적으로 많이 사용되는 알고리즘 중 하나 입니다. 이 글에서는 어떤 상황에서 BFS를 사용하며, 어떤 코드에서 사용되고 있는 지 알아보도록 하겠습니다. 깊이 우선 탐색(DFS)란 무엇일까? 깊이 우선 탐색(Depth-First Search)은 그래프나 트리와 같은 자료 구조에서 노드를 탐색하는 알고리즘 중 하나입니다. DFS는 시작 노드에서 출발하여 깊이를 우선으로 하여 노드들을 방문하는 방식으로, 한 경로의 최대 깊이까지 도달한 후 다시 이전 노드로 돌아와 미방문 인접 노드를 방문하는 방식으로 진행됩니다. DFS는 다음과 같은 순서로 실행됩니다 시작 노드를 방문합니다. 방문한 노드를 기준으로 인접한 미방문 노드가 있으면 그 노..