목록Computer Science/Problem Solving (13)
세상에 나쁜 코드는 없다
문제 링크 : https://www.acmicpc.net/problem/1197 1197번: 최소 스패닝 트리 첫째 줄에 정점의 개수 V(1 ≤ V ≤ 10,000)와 간선의 개수 E(1 ≤ E ≤ 100,000)가 주어진다. 다음 E개의 줄에는 각 간선에 대한 정보를 나타내는 세 정수 A, B, C가 주어진다. 이는 A번 정점과 B번 정점이 www.acmicpc.net 문제 : 주어진 정점과 간선의 정보를 토대로 그래프의 mst 가중치를 구하는 문제였다. 이 문제를 해결하기 위해서 신경 써 줘야 하는 지점이 두 군데 있었다. 1. 정점의 개수가 10000개이다. 2차원 배열을 통한 가중치 그래프의 구현은 10000*10000*4byte = 400 mb 를 차지하기 때문에 문제에서 허용하는 메모리(128..
문제 바로가기: https://www.acmicpc.net/problem/2589 2589번: 보물섬 보물섬 지도를 발견한 후크 선장은 보물을 찾아나섰다. 보물섬 지도는 아래 그림과 같이 직사각형 모양이며 여러 칸으로 나뉘어져 있다. 각 칸은 육지(L)나 바다(W)로 표시되어 있다. 이 지도에서 www.acmicpc.net 육지 위 기준 거리가 가장 긴 곳에 보물이 묻혀있다. 최단경로 문제이니 너비우선탐색을 통해 문제를 구상했고, 가장 긴 경로를 찾기 위해서 모든 L에서 bfs를 진행한 후 나오는 가장 큰 거리 값을 답으로 하는 방식으로 문제를 풀었다. #include #include using namespace std; //L = 76 , W = 87 int N,M; //true는 Land, false..
https://www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net #include #include #include using namespace std; int N; int map[25][25]; queue q; //arr은 단지내 아파트 개수 (인접한 1의 개수)를 저장할 배열 int arr[313]; //배열의 사이즈를 별도로 관리 int arrSize = 0; int dr[4] = {1,-1,0,0}; int dc[4] = {0,0,1,-1}; // 좌표 r,..
#include #include using namespace std; int field[52][52]; int row, col; int dx[4] = { 1, -1, 0, 0 }; int dy[4] = { 0, 0, 1, -1 }; queue q; void caseSet() { int K,tempRow,tempCol; cin >> col >> row >> K; for(int i=0; i
사실상 mCn 을 구하는 문제인데, mCn 을 구하는 공식 mPn / n!을 통해서는 문제의 해답을 구할 수 없다. 문제 조건인 N > m; cout