n차원 vector 선언 vector 변수명 vector v1; // 2차원 vector 인 v1 vector v2; // 3차원 vector 인 v2 {행}을 고정하고 {열} 사용자가 앞으로 입력하게 되는 값의 갯수 만큼만 2차원 배열을 생성합니다. vector v3[5]; n차원 vector 초기화 vector의 행과 열의 크기를 아는 경우 다음과 같이 vector 크기를 초기화 할 수 있습니다. vector n(n, vector(m)); // n * m 만큼 2차원 vector 공간만 확보 vector n(n, vector(m, 0)); // n * m 만큼 2차원 vector 0으로 값 초기화 // n * m * k 3차원 vector 공간만 확보 vector t(n+1, vector(m+1, ..
dfs
DFS란 말 그대로 깊은 부분을 우선적으로 탐색하는 기법이다. 이 알고리즘의 핵심은 스택(stack) 자료구조를 사용하는 것이다. 스택 자료구조는 FILO (First-In-Last-Out) 방식을 따른다. 즉 스택에 데이터를 집어넣을 때 순서와 스택에서 데이터를 꺼낼 때 순서가 역방향이라는 것이다. DFS는 가능한 모든 경로(후보)를 탐색한다. 따라서, 불필요할 것 같은 경로를 사전에 차단하거나 하는 등의 행동이 없으므로 경우의 수를 줄이지 못한다. 따라서 N! 가지 경우의 수를 가진 문제는 DFS로 처리가 불가능할 것이다. DFS 알고리즘 구체적인 동작 과정은 아래과 같다. 탐색 시작 노드를 스택에 삽입하고 "방문처리"를 한다. 스택의 최상단 노드에 방문하지 않은 인접 노드가 있으면 그 인접 노드를 ..