본문 바로가기

알고리즘

Topological Sorting(위상 정렬)의 개념, 구현 방법 DAG (Directed Acyclic Graph) 사이클이 없는 방향 그래프 ex) 작업들의 우선순위, 학과 선수과목, 라면 끓이기 Topological Sorting(위상 정렬) DAG에서 모든 정점을 순서대로 정렬 정렬 기준: 모든 간선(Vi, Vj)에 대해 Vi가 Vj보다 앞에 위치 위상 정렬 구현 1) 진입 간선이 0인 노드부터 순서대로 탐색하는 방법 #include #include #include using namespace std; int n, m; // n: 노드, n: 정점 int s, e; // s: 시작지점 e: 끝지점 vector adjArray; vector inDeg; // 진입간선의 수 queue q; // 진입간선이 0인 노드를 저장하는 큐 vector A; // 결과값 저장.. 더보기
[python] 백준 14501번 퇴사 https://www.acmicpc.net/problem/14501 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net 💻 코드 import sys input = sys.stdin.readline n = int(input()) t_list = [] p_list = [] dp = [0] * (n + 1) for _ in range(n): t, p = map(int, input().split()) t_list.append(t) p_list.append(p) for i in range(n - 1, - 1, -1): if t_list[i] + i > n: dp[i] = dp[i + 1] else: dp[i] = max(p_list[i] + dp[i + t_l.. 더보기
브루트 포스(Brute Force) 브루트 포스(Brute Force)란? 난폭한(Brute) 힘(Force) 모든 경우의 수를 무식하게 탐색하여 요구 조건에 충족되는 결과만을 가져오는 알고리즘으로, 전체 탐색, 완전 탐색이라고도 불린다. 브루트 포스(Brute Force)의 장점 알고리즘을 설계하고 구현하기 쉽다. 브루트 포스(Brute Force)의 단점 알고리즘의 실행 시간이 매우 오래 걸린다. 메모리 사용이 매우 비효율적이다. 브루트 포스(Brute Force) 알고리즘 구현 방법 1. for/while loop 이용 2. 재귀 함수 이용 브루트 포스(Brute Force) 문제 2022.07.25 - [Algorithm 문제 풀이/python] - [python] 백준 2309번 일곱 난쟁이 [python] 백준 2309번 일곱 .. 더보기