전체 글
BOJ - 연구소 3 17142번 (JAVA)
❓ 문제 - 백준 연구소 3 17142번 - JAVA 풀이법 출처 (https://www.acmicpc.net/problem/17142) 17142번: 연구소 3 인체에 치명적인 바이러스를 연구하던 연구소에 승원이가 침입했고, 바이러스를 유출하려고 한다. 바이러스는 활성 상태와 비활성 상태가 있다. 가장 처음에 모든 바이러스는 비활성 상태이고 www.acmicpc.net 📝 문제해결법 1. 이 문제는 DFS(조합) + BFS로 풀었다. 바이러스 중 M개의 활성 바이러스로 시킬 것들의 조합을 만든 후 해당 조합에서 다른 바이러스가 아닌 곳까지 다 퍼트리는데 얼만큼 시간이 걸리는지의 최솟값을 계속 갱신한다. BFS 내에서는 선택된 바이러스를 활성으로 만들고 큐에 넣고 인접한 4방향으로 탐색하면서 만약 바이러..
BOJ - 이차원 배열과 연산 17140번 (JAVA)
❓ 문제 - 백준 이차원 배열과 연산 17140번 - JAVA 풀이법 출처 (https://www.acmicpc.net/problem/17140) 17140번: 이차원 배열과 연산 첫째 줄에 r, c, k가 주어진다. (1 ≤ r, c, k ≤ 100) 둘째 줄부터 3개의 줄에 배열 A에 들어있는 수가 주어진다. 배열 A에 들어있는 수는 100보다 작거나 같은 자연수이다. www.acmicpc.net 📝 문제해결법 1. 이 문제는 구현으로 풀었다. 배열 A에 들어갈 수 있는 수는 100보다 작으므로 2차원 배열을 101*101 사이즈로 미리 만들어 놓고 연산된 정보 값을 관리한다. A[r][c]에 특정 k 값이 존재할 때까지 연산을 반복하다가 만약 연산 횟수가 101번이 되면 연산을 종료하고 -1을 출력..
BOJ - 낚시왕 17143번 (JAVA)
❓ 문제 - 백준 낚시왕 17143번 - JAVA 풀이법 출처 (https://www.acmicpc.net/problem/17143) 📝 문제해결법 1. 이 문제는 구현으로 풀었다. Shark라는 객체 2차원 배열의 map으로 상어를 관리한다. 낚시왕이 0열부터 마지막 열까지 이동하면서 낚시를 하고 각 상어는 이동하는데 맞춰서 구현해주면 된다. 낚시 하는 부분은 해당 열에서 가장 작은 행부터 차례대로 상어가 존재하는지를 찾아서 낚시 처리한다. 상어의 이동 부분 에서는 shark_copy라는 객체 2차원 배열을 만들고 이동하면서 거기에 이동한 상어의 객체를 넣어준다. 만약 이동할 곳인 shark_copy에 이미 상어가 존재한다면 상어의 크기를 비교해서 작은 상어는 제거한다. 한 상어의 이동을 처리할 때 s..
BOJ - 미세먼지 안녕! 17144번 (JAVA)
❓ 문제 - 백준 미세먼지 안녕! 17144번 - JAVA 풀이법 출처 (https://www.acmicpc.net/problem/17144) 📝 문제해결법 1. 이 문제는 구현으로 풀었다. air_1과 air_2에 미세먼지의 위치 행 값을 저장한다. 해당 시간만큼 미세먼지 확산 -> 공기청정기 가동을 반복적으로 수행한 뒤 각 영역에 먼지 값 총합을 더해서 출력한다. 미세먼지 확산은 moving 함수로 구현하였다. 미세먼지의 확산 구현의 포인트는 map_copy를 통해 확산된 양을 저장한 후 다시 그것을 map에 깊은 복사 해주는 것이다. (--> 동시에 먼지가 확산하기 때문이다!) 공기청정기 가동은 air_machine()이라는 메소드로 구현했다. 2. air_machine() 함수 공기청정기의 윗 부..