목록분류 전체보기 (49)
세상에 나쁜 코드는 없다
문제 바로가기: 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
문제 해결 구현: #include using namespace std; // arr[a][b]의 값은 a를 호출할때 b를 호출하게 되는 횟수 int arr[40][2]; void calculate() { arr[0][0] =1; arr[1][1] = 1; for(int i=2; i> t; for(int i=0; i> n; cout
정답 비율이 48%나 육박하는 dp 문제였다 풀이: #include using namespace std; const int R=0, G=1, B=2; int expense[1000][3]; int houseNum; //ans[n][color]은 n번째 집이 color인 경우에 드는 최소 비용 int ans[1000][3]; void init() { cin >> houseNum; for(int i=0; i expense[i][j]; } int findSmall(int a, int b) { if(a>=b) return b; else return a; } int getMinimumExpense() { ans[0][R]= expense[0][R]; ans[0][G]= expense[0][G]; ans[0][B]..