본문 바로가기
728x90

Algorithm/DFS&BFS(완전탐색)27

17142 연구소3 https://www.acmicpc.net/problem/17142 17142번: 연구소 3 인체에 치명적인 바이러스를 연구하던 연구소에 승원이가 침입했고, 바이러스를 유출하려고 한다. 바이러스는 활성 상태와 비활성 상태가 있다. 가장 처음에 모든 바이러스는 비활성 상태이고 www.acmicpc.net (풀이) 연구소2 문제와 유사하지만, 비활성화된 바이러스로 반례가 존재한다. 기존과 같은 풀이방식의 Depth로는 아래의 반례 5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 0 0 2 0 1 1 1 1 1 를 통과하기 어렵다. 따라서 0의 갯수를 카운트하여 확산이 가능한 부분에 대해서 확산 갯수와 0의 갯수가 같아지는 시점에 전부 확산 되었다고 판단. #include #include #i.. 2020. 7. 30.
17141 연구소2 https://www.acmicpc.net/problem/17141 17141번: 연구소 2 인체에 치명적인 바이러스를 연구하던 연구소에 승원이가 침입했고, 바이러스를 유출하려고 한다. 승원이는 연구소의 특정 위치에 바이러스 M개를 놓을 것이고, 승원이의 신호와 동시에 바이�� www.acmicpc.net (풀이) 바이러스를 퍼트릴 수 있는 특정 지점들에서 바이러스가 퍼지는 최단시간을 구하는문제. 바이러스를 놓을 수 있는 공간 E개라고한다면 M개를 살포할 수있으므로 (1> arr[i][j]; if(arr[i][j]==1) check[i][j] = arr[i][j]; if (arr[i][j] == 2) virus_pos.push_back(make_pair(i, j)); } } } 2020. 7. 30.
16985 Maaaaaaaaaze https://www.acmicpc.net/problem/16985 16985번: Maaaaaaaaaze 첫째 줄부터 25줄에 걸쳐 판이 주어진다. 각 판은 5줄에 걸쳐 주어지며 각 줄에는 5개의 숫자가 빈칸을 사이에 두고 주어진다. 0은 참가자가 들어갈 수 없는 칸, 1은 참가자가 들어갈 수 있는 칸을 www.acmicpc.net (풀이) 이 문제는 바둑이와 난이도는 같지만, 경우의수가 하나 더 추가되어 구현이 복잡하다. 문제의 요구조건은 5x5x5 3차원 배열의 각 층을 무작위로 선택하여 선택한 층들을 다시 무작위로 회전시켯을때 미로를 탈출할 수 있는 가장 최소거리를 구하는 문제이다. 이 문제를 층을 나누는방식과, 회전시키는 부분을 분리해보면 무작위로 층을 선택하는 경우의 수는 5!이 나온다. 각 층.. 2020. 7. 25.
2234 성곽 https://www.acmicpc.net/problem/2234 2234번: 성곽 문제 대략 위의 그림과 같이 생긴 성곽이 있다. 굵은 선은 벽을 나타내고, 점선은 벽이 없어서 지나다닐 수 있는 통로를 나타낸다. 이러한 형태의 성의 지도를 입력받아서 다음을 계산하는 프로� www.acmicpc.net (풀이) 1. 성의 방의 갯수는 연결요소가 몇개인지 탐색을 해서 구한다 2. 방의 최대길이는 각 연결요소의 길이중 최대합을 구한다. 3. 하나의 벽을 제거하여 얻을 수 있는 방의 최대 크기는 서로 이웃한 다른 연결요소들의 길이를 합하여 그 중 최대값이 무엇인지 구한다 EX) 서로 이웃한 방(1->5), (1->2), (2->3), (2->5) (3->4) 1과 이웃한 방이 5라면 한번 벽을 허물고 길이를 .. 2020. 7. 17.
17822 원판 돌리기 https://www.acmicpc.net/problem/17822 17822번: 원판 돌리기 반지름이 1, 2, ..., N인 원판이 크기가 작아지는 순으로 바닥에 놓여있고, 원판의 중심은 모두 같다. 원판의 반지름이 i이면, 그 원판을 i번째 원판이라고 한다. 각각의 원판에는 M개의 정수가 적혀 www.acmicpc.net (풀이) 1. rotate 함수 구현 CCW, CW 방향을 매개변수로 받아서 각각 x배수 번째의 원판을 K번 회전 시킨다. CCW인 경우 (d ==1) -> 배열을 왼쪽으로 k번 회전 시켜주면 된다. CW인 경우는 오른쪽으로 k 번 회전 2.조금 변형된 BFS 인접한 4방향탐색을 통해 원판과 인접한 숫자들이 같으면 소거한다. 하지만, 예를들어 1431 이 한개의 원판에 있을때 원판.. 2020. 7. 15.
14503 로봇 청소기 https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net (풀이) 문제의 요구 사항 1. 현재 위치를 청소한다. 2. 현재 위치에서 현재 방향을 기준으로 왼쪽방향부터 차례대로 탐색을 진행한다. a. 왼쪽 방향에 아직 청소하지 않은 공간이 존재한다면, 그 방향으로 회전한 다음 한 칸을 전진하고 1번부터 진행한다. b. 왼쪽 방향에 청소할 공간이 없다면, 그 방향으로 회전하고 2번으로 돌아간다. c. 네 방향 모두 청소가 이미 되어있거나 벽인 경우에는, .. 2020. 7. 15.
2468 안전영역 https://www.acmicpc.net/problem/2468 2468번: 안전 영역 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 � www.acmicpc.net (풀이) 완전탐색 + BFS 문제 1. 문제 요구사항 파악 비가 0 (안옴) ~ 100까지 내리는데 , 그때 침수되지 않는 영역이 최대 몇개인지 구하는 문제. 2. 접근 0~100까지 비를 내려보며 BFS를 탐색하며 연결요소를 구해보았다. 3.더 나은 풀이법. 기둥의 최대높이까지만 비를 내려도 그 이상은 모두 침수되므로 굳이 100까지 내릴 필요가 없다. 효율성을 더 빠르게 할 수 있음. #inclu.. 2020. 7. 13.
9205 맥주 마시면서 걸어가기 https://www.acmicpc.net/problem/9205 9205번: 맥주 마시면서 걸어가기 문제 송도에 사는 상근이와 친구들은 송도에서 열리는 펜타포트 락 페스티벌에 가려고 한다. 올해는 맥주를 마시면서 걸어가기로 했다. 출발은 상근이네 집에서 하고, 맥주 한 박스를 들고 출발 www.acmicpc.net (풀이) 1. 잘못 접근. 문제에서 순차적으로 접근해야 하는줄 알았다. 2. 순서에 상관없이, 편의점 혹은 도착지점 까지 BFS 탐색을하며 목적지까지 맥주가 다 떨어지지 않는지 풀어야 한다. 3. 맥주가 다 떨어지는 것은 탐색까지 도착지에 다다르지 못하면 도착 하지 못한것으로 판정 4. 다음 위치를 가기 위한 조건 즉, queue에 삽입 되어야 하는 조건 check[i] = (i는 편의점 혹.. 2020. 7. 13.
2644 촌수 계산 https://www.acmicpc.net/problem/2644 2644번: 촌수계산 사람들은 1, 2, 3, …, n (1≤n≤100)의 연속된 번호로 각각 표시된다. 입력 파일의 첫째 줄에는 전체 사람의 수 n이 주어지고, 둘째 줄에는 촌수를 계산해야 하는 서로 다른 두 사람의 번호가 주어진� www.acmicpc.net (풀이) 문제 접근 1. 인접리스트를 이용한 BFS 2. 기본적인 인접리스트를 이용한 BFS를 구현할 수 있는지 묻는 문제 vector v 로 2차원 연결리스트를 만들고, 해당 노드와 연결된 부분을 입력과 함께 연결시켜줌. 3. 시작점부터 도착지점을 찾을때까지 너비우선탐색, DFS로도 풀리는 문제이다. 4. 못찾으면 -1출력. #include #include #include usi.. 2020. 7. 13.
16928 뱀과 사다리 게임 https://www.acmicpc.net/problem/16928 16928번: 뱀과 사다리 게임 첫째 줄에 게임판에 있는 사다리의 수 N(1 ≤ N ≤ 15)과 뱀의 수 M(1 ≤ M ≤ 15)이 주어진다. 둘째 줄부터 N개의 줄에는 사다리의 정보를 의미하는 x, y (x < y)가 주어진다. x번 칸에 도착하면, y번 칸으 www.acmicpc.net 뱀과 사다리 게임 성공 시간 제한메모리 제한제출정답맞은 사람정답 비율 1 초 512 MB 2036 709 507 33.051% 문제 뱀과 사다리 게임을 즐겨 하는 큐브러버는 어느 날 궁금한 점이 생겼다. 주사위를 조작해 내가 원하는 수가 나오게 만들 수 있다면, 최소 몇 번만에 도착점에 도착할 수 있을까? 게임은 정육면체 주사위를 사용하며, 주사위의 .. 2020. 5. 10.
728x90