태그: DFS

백준 텀 프로젝트 9466

1. 백준 텀 프로젝트 9466 문제 1.1. 문제 이번 가을학기에 ‘문제 해결’ 강의를 신청한 학생들은 텀 프로젝트를 수행해야 한다. 프로젝트 팀원 수에는 제한이 없다. 심지어 모든 학생들이 동일한 팀의 팀원인 경우와 같이 한 팀만 있을 수도 있다. 프로젝트 팀을 구성하기 위해, 모든 학생들은 프로젝트를 함께하고 싶은 학생을 선택해야 한다. (단,

백준 반복 순열 2331

1. 백준 반복 순열 2331 문제 1.1. 문제 다음과 같이 정의된 수열이 있다. D[1] = A D[n] = D[n-1]의 각 자리의 숫자를 P번 곱한 수들의 합 예를 들어 A=57, P=2일 때, 수열 D는 {57, 74(=52+72=25+49), 65, 61, 37, 58, 89, 145, 42, 20, 4, 16, 37, …}이 된다. 그 뒤

백준 순열 사이클 10451

1. 백준 순열 사이클 10451 문제 1.1. 문제 1부터 N까지 정수 N개로 이루어진 순열을 나타내는 방법은 여러 가지가 있다. 예를 들어, 8개의 수로 이루어진 순열 (3, 2, 7, 8, 1, 4, 5, 6)을 배열을 이용해 표현하면 와 같다. 또는, Figure 1과 같이 방향 그래프로 나타낼 수도 있다. 순열을 배열을 이용해 로 나타냈다면

그래프 인접행렬, 인접리스트 및 DFS,BFS

1. 그래프 그래프의 정의를 살펴보면 G=(V,E)가 성립하게 됩니다. G: 그래프, V: 정점, E: 간선을 의미합니다. 2. 경로 만약 A->C, A->B, C->B, E->B, C->E, C->D, D->E의 정점과 간선으로 연결된 그래프가 있다고 생각하겠습니다. 이때 정점 A->B로 가는 경로는 몇가지

백준 연결요소의 개수 11724

1. 백준 연결요소의 개수 11724 문제 1.1. 문제 방향 없는 그래프가 주어졌을 때, 연결 요소 (Connected Component)의 개수를 구하는 프로그램을 작성하시오. 1.2. 입력 첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝

프로그래머스 큰 수 만들기

1. 문제 링크 1.1. 프로그래머스 큰수만들기 2. 문제 조건 2.1. 문제 설명 어떤 숫자에서 k개의 수를 제거했을 때 얻을 수 있는 가장 큰 숫자를 구하려 합니다. 예를 들어, 숫자 1924에서 수 두 개를 제거하면 [19, 12, 14, 92, 94, 24] 를 만들 수 있습니다. 이 중 가장 큰 숫자는 94 입니다. 문자열 형식으로 숫자 n

백준 연산자끼워넣기2 15658

연산자끼워넣기(2)15658 1. 컴퓨팅 스킬 DFS 재귀호출로 백트래킹으로 구해줍니다. 연산자끼워넣기 1번문제와 같은 원리입니다. 정답 또한 같습니다. 2. 컴퓨팅 사고 DFS 백트래킹 맨처음 dfs(v,1,v[0],plus,minus,multi,div); 호출할 때 왜 idx = 1로 시작하고, sum의 값을 v[0]의 값을 넘겨주는가에

백준 연산자끼워넣기 14888

1. 연산자끼워넣기14888 2. 컴퓨팅 스킬 next_permutation 값을 저장 시킬 vector v; 연산자의 개수를 1,2,3,4 의 값으로 넣을 vector cal; #include헤더에 minmax_element으로 최대값과 최소값 구해줍니다. DFS 재귀호출로 백트래킹으로 구해줍니다. 3. 컴퓨팅 사고 next_per

알고리즘 N-Queen 문제

1. N-Queen문제 2. 컴퓨팅적 스킬 Recursive() 재귀함수 어느지점에서 종료시키고, 다시 재귀호출을 해야하는지의개념을 확실하게 알고 있어야합니다. Recursive()의 개념을 잡기에 좋은 문제는 백준 N과 M시리즈 입니다. 개념이 약하신분들은 순열과 조합의 개념부터 확실히 잡고 오시는것이 좋을 것이라고 생각을 합니다. 백트래킹 깊이우선