Print Friendly and PDF

2025/05 37

[필수 알고리즘] DFS

DFS란?- 바로가기 [필수 알고리즘] 그래프 탐색그래프 탐색이란?- 어떤 것들이 연속해서 이어질때, 모두 확인하는 방법- Graph: Vertex(어떤 것) + Edge(이어지는 것) 그래프 탐색 종류- BFS : 너비 우선 탐색- DFS : 깊이 우선 탐색 BFS- 자기 자식을 우선lhy-info.tistory.com- Stack과 재귀함수를 이용해 풀수 있음- 그래프 탐색은 BFS로 대부분 풀수 있으며, DFS는 재귀 함수를 사용하기 위함이며 백트래킹에서 효율적이라함 재귀함수란?- 자기 자신을 다시 호출하는 함수- DFS, 백트래킹에서 주로 사용 풀이방법- 시작 Vertex 찾기- 연결된 Vertex를 계속 찾음(끝날때 까지)- 더이상 연결된 Vertex 없을 경우 다음 진행- 1 -> 2 -> 3..

[필수 알고리즘] BFS

BFS란?- 바로가기 [필수 알고리즘] 그래프 탐색그래프 탐색이란?- 어떤 것들이 연속해서 이어질때, 모두 확인하는 방법- Graph: Vertex(어떤 것) + Edge(이어지는 것) 그래프 탐색 종류- BFS : 너비 우선 탐색- DFS : 깊이 우선 탐색 BFS- 자기 자식을 우선lhy-info.tistory.com 풀이 방법1. Vertex 찾기2. 찾은 Vertex를 Queue에 저장3. Queue에서 뽑아 반복 *Queue란?- 선입선출로 먼저 들어온 것이 제일 먼저 나간다. - 1번 추가 -> 2,5번 추가 -> 2번 확인하며 3번 추가 -> 5번 확인하며 4번 추가 -> 4번 확인하며 6번 추가 시간복잡도(Big - O)- 알고리즘이 얼마나 오래 걸리는지- 제한시간안에 나와야함 BFS의 시..

[백준] 알고리즘 수업 - 알고리즘 수업 - 점근적 표기 1 - 24313번

깃 링크 : 바로가기링크 : 바로가기 1차시도class num_24267{ static void Main() { string[] input = Console.ReadLine().Split(); int a1 = int.Parse(input[0]); int a0 = int.Parse(input[1]); int c = Convert.ToInt32(Console.ReadLine()); int n0 = Convert.ToInt32(Console.ReadLine()); bool check1 = a1 결과- "f(n) = 7n + 7, g(n) = n, c = 8, n0 = 10 이라고 한다 - n0는 n의 최소값이며, n0를 n..

[백준] 알고리즘 수업 - 알고리즘의 수행 시간 6 - 24267번

깃 링크 : 바로가기링크 : 바로가기 1차시도class num_24267{ static void Main() { long n = long.Parse(Console.ReadLine()); long result = n * (n - 2) * (n - 1) / 6; Console.WriteLine(result); Console.WriteLine(3); } /* MenOfPassion(A[], n) { sum 결과- 삼중 반복문으로 최고다항은 3- for문에 "to n - 2", "to n - 1"이기 때문에 수행시간은 "n * (n-2) * (n-1) / x"이며- x값은 삼중 반복문이라 3이라 생각할 수 있지만 3!으로..

[백준] 알고리즘 수업 - 알고리즘의 수행 시간 5 - 24266번

깃 링크 : 바로가기링크 : 바로가기 1차시도class num_24266{ static void Main() { int n = int.Parse(Console.ReadLine()); Console.WriteLine(Math.Pow(n, 3)); Console.WriteLine(3); } /* MenOfPassion(A[], n) { sum 결과- 삼중 반복문으로 최고차항수는 3이며,- Math.Pow는 double타입으로 표기 문제가 있다고함 2차 시도class num_24266{ static void Main() { long n = long.Parse(Console.ReadLine()); ..

[백준] 알고리즘 수업 - 알고리즘의 수행 시간 4 - 24265번

깃 링크 : 바로가기링크 : 바로가기 1차시도class num_24265{ void Main() { int n = int.Parse(Console.ReadLine()); Console.WriteLine((long)n * (n - 1) / 2); Console.WriteLine(2); } /* MenOfPassion(A[], n) { sum 결과- 이중 반복문으로 최고차항수는 2 - 수행시간은 for문에 n-1이기 때문에 n * (n-1) / 2 처리, - "첫째 줄에 입력의 크기 n(1 ≤ n ≤ 500,000)이 주어진다."이기 때문에 500,000 * 499,999 / 2 = 124,999,750,000로 int값인 21..

[백준] 알고리즘 수업 - 알고리즘의 수행 시간 3 - 24264번

깃 링크 : 바로가기링크 : 바로가기 1차시도class num_24264{ void Main() { int n = int.Parse(Console.ReadLine()); Console.WriteLine(Math.Pow(n, 2)); Console.WriteLine(2); } /* MenOfPassion(A[], n) { sum 결과- 이중 반복문으로 알고리즘 수행 시간이 n*n이기 때문에 최고차항은 2이며 O(n^2)로 판단- 최고차항수는 2, 수행 횟수는 n의 2승이며 Math.Pow를 이용하여 계산