전체 글
BOJ - 마법사 상어와 파이어볼 20056번 (JAVA)
❓ 문제 - 백준 마법사 상어와 파이어볼 20056번 - JAVA 풀이법 출처 (https://www.acmicpc.net/problem/20056) 20056번: 마법사 상어와 파이어볼 첫째 줄에 N, M, K가 주어진다. 둘째 줄부터 M개의 줄에 파이어볼의 정보가 한 줄에 하나씩 주어진다. 파이어볼의 정보는 다섯 정수 ri, ci, mi, si, di로 이루어져 있다. 서로 다른 두 파이어볼의 위치 www.acmicpc.net 📝 문제해결법 1. 이 문제는 구현으로 풀었다. Node로 각 파이어볼의 ArrayList map의 2차원배열로 파이어볼의 위치를 관리한다. 각 파이어볼의 이동처리는 동시에 일어나므로 map_copy를 활용해서 파이어볼의 이동처리를 구현한다. 0번 행과 n-1행이 연결되어 있고..
BOJ - 컨베이어 벨트 위의 로봇 20055번 (JAVA)
❓ 문제 - 백준 컨베이어 벨트 위의 로봇 20055번 - JAVA 풀이법 출처 (https://www.acmicpc.net/problem/20055) 20055번: 컨베이어 벨트 위의 로봇 길이가 N인 컨베이어 벨트가 있고, 길이가 2N인 벨트가 이 컨베이어 벨트를 위아래로 감싸며 돌고 있다. 벨트는 길이 1 간격으로 2N개의 칸으로 나뉘어져 있으며, 각 칸에는 아래 그림과 같이 1부 www.acmicpc.net 📝 문제해결법 1. 이 문제는 구현으로 풀었다. ArrayList를 활용해서 벨트의 각 칸에 남은 내구도를 관리하며, robot의 배열로 0~n-1칸에 있는 로봇이 있는지 없는지를 체크해준다. while을 통해 내구도가 0인 칸의 개수가 k개 이상인지 매번 체크하면서 조건에 순서에 맞춰 컨베이..
BOJ - 스타트택시 19238번 (JAVA)
❓ 문제 - 백준 스타트택시 19238번 - JAVA 풀이법 출처 (https://www.acmicpc.net/problem/19238) 19238번: 스타트 택시 첫 줄에 N, M, 그리고 초기 연료의 양이 주어진다. (2 ≤ N ≤ 20, 1 ≤ M ≤ N2, 1 ≤ 초기 연료 ≤ 500,000) 연료는 무한히 많이 담을 수 있기 때문에, 초기 연료의 양을 넘어서 충전될 수도 있다. 다 www.acmicpc.net 📝 문제해결법 1. 이 문제는 BFS+구현으로 풀었다. 2차원배열 map으로 활동할 영역에 대한 정보를 관리한다. cus_map으로 손님의 출발지의 위치를 저장하고, cus로 손님의 출발지 x, y 도착치 x,y를 저장해서 관리한다. 택시는 모든 손님을 다 태울 때나 운행이 종료될까지 운행..
BOJ - 어른 상어 19237번 (JAVA)
❓ 문제 - 백준 어른 상어 19237번 - JAVA 풀이법 출처 (https://www.acmicpc.net/problem/19237) 📝 문제해결법 1. 이 문제는 구현로 풀었다. map이라는 2차원 배열에 상어의 번호를 저장한다. Node[]라는 객체 배열로 각 상어에 인덱스에 맞는 상어의 정보(위치 x, y, 방향 dir)를 저장한다. Smell이라는 2차원 객체로 어떤 상어가 냄새를 남겼는지, 그리고 남긴 시점은 언제인지를 체크 저장한다. shark_dir이라는 3차원 배열로 각 방향에 맞춰 방향의 우선순위를 저장한다. check() 메소드를 통해 격자 안에 1번의 상어만 남았는지 체크한다. 상어의 움직임에서 처음에 각 상어의 이동이 시작되면 방향을 우선순위에 맞춰 정하고 해당 방향으로 이동했을..