목록dfs (2)
HS_development_log
1. 문제 6603번: 로또 문제 독일 로또는 {1, 2, ..., 49}에서 수 6개를 고른다. 로또 번호를 선택하는데 사용되는 가장 유명한 전략은 49가지 수 중 k(k>6)개의 수를 골라 집합 S를 만든 다음 그 수만 가지고 번호를 선택하는 www.acmicpc.net 2. 알고리즘 k개의 수 중에서 6개를 조합하는 문제이다. 경우의 수는 kC6. 재귀로 완전탐색을 실시하여 모든 조합을 찾은 후 출력한다. 재귀의 return조건은 6개를 조합해야하므로 detph==6. 3. 코드 /** * 2020.07.28 * 백준 6603 : 로또 * DevHyeonseong */ import java.util.*; public class BOJ6603 { public static int[] lotto; pub..
문제 https://www.acmicpc.net/problem/13023 13023번: ABCDE 문제의 조건에 맞는 A, B, C, D, E가 존재하면 1을 없으면 0을 출력한다. www.acmicpc.net 문제를 해석하면 그래프의 깊이가 4 이상인지 물어보는 문제이다. DFS로 탐색하면 된다 방문처리를 탐색이 끝나면 다시 false로 돌려주는 부분만 조심하면 어렵지 않다 정점의 개수가 최대 2000개이므로 인접 행렬로 구현하면 메모리 낭비가 크므로 인접 리스트로 구현하는 것이 좋다. 알고리즘 인접 리스트에 그래프를 저장한다 재귀 방식으로 dfs를 실시한다. 파라미터에 깊이를 1씩 증가하면서 재귀 호출을 한다 깊이가 4 이상이 되면 1, 탐색이 다 끝났는데 4 이상이 안되면 0을 출력한다 소스코드 1..