알고리즘/알고리즘문풀

    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번의 상어만 남았는지 체크한다. 상어의 움직임에서 처음에 각 상어의 이동이 시작되면 방향을 우선순위에 맞춰 정하고 해당 방향으로 이동했을..

    BOJ - 청소년 상어 19236번 (JAVA)

    ❓ 문제 - 백준 청소년 상어 19236번 - JAVA 풀이법 출처 (https://www.acmicpc.net/problem/19236) 📝 문제해결법 1. 이 문제는 구현+DFS(백트래킹)으로 풀었다. HashMap을 통해 key는 물고기의 번호, value는 물고기의 정보(위치 x,y, 방향)를 담은 객체를 관리한다. 2차원 배열 map으로 물고기의 위치와 함께 i, j행에 물고기의 번호를 담는다. s_x, s_y는 상어의 위치이며, 상어의 방향은 처음 0,0 의 물고기를 먹은 후 해당 물고의 방향을 가지게 된다. DFS(백트래킹)을 통해 물고기의 이동, 상어가 갈 수 있는 방향 내에서 움직임을 완전탐색 해서 먹을 수 있는 물고기의 최대갯수를 구한다. 물고기의 이동을 구현할 때 한번에 이동하므로 m..

    BOJ - 모노미노도미노2 20061번 (JAVA)

    ❓ 문제 - 백준 모노미노도미노 20061번 - JAVA 풀이법 출처 (https://www.acmicpc.net/problem/20061) 20061번: 모노미노도미노 2 모노미노도미노는 아래와 같이 생긴 보드에서 진행되는 게임이다. 보드는 빨간색 보드, 파란색 보드, 초록색 보드가 그림과 같이 붙어있는 형태이다. 게임에서 사용하는 좌표 (x, y)에서 x는 행, www.acmicpc.net 📝 문제해결법 1. 이 문제는 구현로 풀었다. 그린 보드와 파란보드를 각각 green, blue라는 2차원 배열로 관리하였다. 만약 블록이 하나 떨어지면 moving_green(), moving_blue()라는 메소드를 통해 각 보드에 블록 떨어짐 처리를 한다. 블록을 놓은 후 bomb()라는 메소드를 통해 각 보..