목록전체 글 (226)
득이공간
11724번: 연결 요소의 개수 첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주어 www.acmicpc.net #include #include #include using namespace std; vector Neighbors; vector Visited; void DFS(int Node) { Visited[Node] = true; for (const int& Neighbor : Neighbors[Node]) { if (Visited[Neighbor]) { continue; } DFS(Neighbor); } ..
1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net #include #include #include using namespace std; int Map[50][50]; list Neighbors[50][50]; void DFS(int Row, int Col) { Map[Row][Col] = 0; for (const pair& Neighbor : Neighbors[Row][Col]) { if (Map[Neighbor.first][Neighbor.second] == 0) { continue; } DFS(Neighbor.first..
1715번: 카드 정렬하기 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장 www.acmicpc.net #include #include #include using namespace std; priority_queue Cards; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int N; cin >> N; for (int i = 0; i > Card; Cards.emplace(Card); } int Cnt = 0; for..
13305번: 주유소 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1 www.acmicpc.net #include #include using namespace std; vector City; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int N; cin >> N; City.reserve(N); for (int i = 0; i > Distance; } City.empla..
1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net #include #include #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); string Input; getline(cin, Input); // Split Two Set int SubtractIndex = Input.find('-'); string SumString = Input.substr(0, SubtractInde..
해당 게시물은 조진성 교수님의 '운영체제' 강의를 수강하며학습한 내용을 개인적으로 정리한 글입니다. 📌 목차 - 1장. OS 소개1-1. Introduction (1)1-2. Operating System Structures (2)📌 1-1. Introduction* 컴퓨터 - 컴퓨터 HW 위에 컴퓨터 SW가 수행되는 장치* 컴퓨터 HW란- CPU, MEMORY, I/O장치로 구성되어있는 장치* 컴퓨터 예시- Sever (Computer), Personal Computer, Embedded Computer/System* 운영체제 요약- 컴퓨터 HW 자원을 관리해주는 시스템- CPU, MEMORY, I/O장치 관리* PC OS- windows, linux, mac* Sever OS- unix(5년전까지..
해당 게시물은 이득우 교수님의 '꼭 배워야하는 게임 알고리즘' 강의를 수강하며 학습한 내용을 개인적으로 정리한 글입니다. 📌 목차 - 1장. 길찾기 알고리즘의 이해 1-1. A* 길찾기 알고리즘의 이해 1-2. A* 알고리즘 구현 1-3. A* 알고리즘 최적화 📌 1-1. A* 길찾기 알고리즘의 이해 * A* 알고리즘의 개발 - 1968년도 SRI(Standford Research Institute)에서 개발 - 모바일 자율 주행 로봇 Shakey 프로젝트의 일환으로 고안 * Dijkstra 알고리즘 - 1959년에 발표 - 그래프의 모든 경로를 탐색하고 최적의 경로를 계산 * A* 알고리즘 - Dijkstra 알고리즘에서 휴리스틱을 활용해 메모리 사용 및 검색 속도를 개선 - 휴리스틱(Heuristic..
11726번: 2×n 타일링 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. www.acmicpc.net #include using namespace std; int DP[1001]; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int N; cin >> N; DP[1] = 1; DP[2] = 2; for (int i = 3; i
9095번: 1, 2, 3 더하기 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. www.acmicpc.net #include using namespace std; int DP[11]; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); DP[0] = 0; DP[1] = 1; DP[2] = 2; DP[3] = 4; for (int i = 4; i > T; for (int i = 0; i > Number; cout
1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net #include using namespace std; pair DP[41]; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); DP[0] = make_pair(1, 0); DP[1] = make_pair(0, 1); for (int i = 2; i > T..