본문 바로가기

프로그래머/알고리즘

[해커랭크 C++] Exceptional Server 문제는 다음과 같다 www.hackerrank.com/challenges/exceptional-server/problem 즉, C++의 예외처리를 통해 Sample Output과 같은 에러 형태를 출력해야 한다. #include #include #include #include #include #include using namespace std; class Server { private: static int load; public: static int compute(long long A, long long B) { load += 1; if(A < 0) { throw std::invalid_argument("A is negative"); } vector v(A, 0); int real = -1, cmplx .. 더보기
[BOJ] 1707번 - 이분 그래프 이분 그래프 문제 그래프의 정점의 집합을 둘로 분할하여, 각 집합에 속한 정점끼리는 서로 인접하지 않도록 분할할 수 있을 때, 그러한 그래프를 특별히 이분 그래프 (Bipartite Graph) 라 부른다. 그래프가 입력으로 주어졌을 때, 이 그래프가 이분 그래프인지 아닌지 판별하는 프로그램을 작성하시오. 입력 입력은 여러 개의 테스트 케이스로 구성되어 있는데, 첫째 줄에 테스트 케이스의 개수 K(2≤K≤5)가 주어진다. 각 테스트 케이스의 첫째 줄에는 그래프의 정점의 개수 V(1≤V≤20,000)와 간선의 개수 E(1≤E≤200,000)가 빈 칸을 사이에 두고 순서대로 주어진다. 각 정점에는 1부터 V까지 차례로 번호가 붙어 있다. 이어서 둘째 줄부터 E개의 줄에 걸쳐 간선에 대한 정보가 주어지는데, .. 더보기
[BOJ] 11724번 - 연결요소의 개수 연결 요소의 개수 문제 방향 없는 그래프가 주어졌을 때, 연결 요소 (Connected Component)의 개수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주어진다. 출력 첫째 줄에 연결 요소의 개수를 출력한다. #include #include using namespace std; bool check[1010]; vector data[1010]; void dfs(int n){ check[n] = true; for(int i=0; i> n >> m; for(int i=1.. 더보기
[알고리즘] 그래프, DFS, BFS 간단 정리 본 포스팅은 백준 알고리즘 강의 기초2 자료를 바탕으로 작성하였습니다. 그래프 정점(Node, Vertex) 간선(Edge) : 정점간의 관계 G = (V, E) Path Cycle Directed Graph Undirected Graph Multiple Edge Loop : 간선의 양 끝점이 같은 경우 Weight Degree : 정점과 연결되어 있는 간선의 개수 방향 그래프의 경우 In-degree(들어오는), Out-degree(나가는)로 나누어서 차수를 계산 그래프의 표현 정점 : {1,2,3,4,5,6} 간선 : {(1,2), (1,5), (2,5), (2,3), (3,4), (2,4), (4,5), (4,6)} 인접 행렬(Adjacency-matrix) 이차원 배열 이용 A[i][j] = 1 .. 더보기