목록알고리즘/백준 (59)
쌓고 쌓다
https://www.acmicpc.net/problem/2210 2210번: 숫자판 점프 111111, 111112, 111121, 111211, 111212, 112111, 112121, 121111, 121112, 121211, 121212, 211111, 211121, 212111, 212121 이 가능한 경우들이다. www.acmicpc.net #include #include #include using namespace std; string arr[5][5]; bool visit[1000000]; int side[4][2] = { {-1,0},{1,0},{0,-1},{0,1} }; int res = 0; void DFS(int y, int x, int cnt, string str) { if (c..
https://www.acmicpc.net/problem/17472 17472번: 다리 만들기 2 첫째 줄에 지도의 세로 크기 N과 가로 크기 M이 주어진다. 둘째 줄부터 N개의 줄에 지도의 정보가 주어진다. 각 줄은 M개의 수로 이루어져 있으며, 수는 0 또는 1이다. 0은 바다, 1은 땅을 의미한다. www.acmicpc.net #include #include #include #include #include using namespace std; queue q; // 넘버링에 BFS 쓸것이므로 큐 필요 vector v; // 땅이면 모두 담음 vector bridge; // 모든 다리 간선을 담을것 int arr[10][10]; // 입력 받은 배열 int parent[7]; // 부모..
https://www.acmicpc.net/problem/18111 18111번: 마인크래프트 팀 레드시프트는 대회 준비를 하다가 지루해져서 샌드박스 게임인 ‘마인크래프트’를 켰다. 마인크래프트는 1 × 1 × 1(세로, 가로, 높이) 크기의 블록들로 이루어진 3차원 세계에서 자유롭게 www.acmicpc.net 모든 높이 ( 0~256 )에 대해 브루트 포스를 진행해도 정답은 처리가 되는 거 같습니다. 입력받은 최소높이~최대높이에 대해 땅 고르기 작업을 진행해서 최소 시간과 높이를 구하면 됩니다. 먼저 solve함수에서 만들 높이에 대해 높은 땅을 먼저 깎아주고 깎은 블럭 개수만큼 인벤토리에 담고, 시간을 더해줍니다. 그리고 높이에 대해 낮은 땅들을 올려주는 작업을 해주면 됩니다. 이에 남은 블럭이 0..