www.acmicpc.net/problem/20056 20056번: 마법사 상어와 파이어볼 첫째 줄에 N, M, K가 주어진다. 둘째 줄부터 M개의 줄에 파이어볼의 정보가 한 줄에 하나씩 주어진다. 파이어볼의 정보는 다섯 정수 ri, ci, mi, si, di로 이루어져 있다. 서로 다른 두 파이어볼의 위치 www.acmicpc.net ✔ 문제 조건 N * N 크기의 map map[i][j]의 파이어볼: 질량 m, 방향 d(8방향) , 속력 s 1번 행은 N번 행, 1번 열은 N번 열과 연결되어 있다. 이동: 모든 파이어볼이 자신의 방향 d만큼, 속력 s만큼 이동 한 칸에 여러 개 파이어볼이 들어올 수 있음 모든 이동 후: 같은 칸의 파이어볼은 하나로 합쳐진다. 4개로 나누어진다 나누어진 질량 : 질량의..
www.acmicpc.net/problem/2636 2636번: 치즈 아래 과 같이 정사각형 칸들로 이루어진 사각형 모양의 판이 있고, 그 위에 얇은 치즈(회색으로 표시된 부분)가 놓여 있다. 판의 가장자리(에서 네모 칸에 X친 부분)에는 치즈가 놓 www.acmicpc.net ✔ 문제 조건 map: 치즈 or 빈칸 0: 빈칸, 1: 치즈가 있는 칸 치즈 공기와 접촉 시 한시간 후 녹아 없어짐 빈칸 치즈 밖에 있는 빈칸은 공기로, 치즈 덩어리의 가장자리와 닿으면 닿은 치즈 칸은 녹는다. 치즈 안에 있는 빈칸은 구멍으로 공기가 아니다. 치즈가 녹으면서 구멍이 열리면 공기가 들어가 치즈를 녹이게 된다. 치즈가 모두 녹아 없어지는데 걸리는 시간과, 녹기 한 시간 전에 남아있는 치즈 칸의 개수 출력 ✔ 접근 과..
www.acmicpc.net/problem/19238 19238번: 스타트 택시 첫 줄에 N, M, 그리고 초기 연료의 양이 주어진다. (2 ≤ N ≤ 20, 1 ≤ M ≤ N2, 1 ≤ 초기 연료 ≤ 500,000) 연료는 무한히 많이 담을 수 있기 때문에, 초기 연료의 양을 넘어서 충전될 수도 있다. 다 www.acmicpc.net ✔ 문제 조건 N * N 크기 map에서 승객 M명 태우기 목표 각 칸은 빈칸 or 벽 택시: 상하좌우 인접한 빈칸 중 하나로 이동 최단 경로로만 이동 택시 위치에서 최단 거리의 승객 택 택시에서의 최단 경로-> 열 번호 최소 승객 택 연료 소모 한 칸 이동 : 연료 -1 승객 목적지 도달 시, 승객을 태워 이동하면서 소모한 연료 *2 충전 중간에 연료 바닥-> 실패 1)..
[BJ] 15686. 치킨배달 www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net ✔ 문제 조건 N * N, 빈칸 / 치킨집 / 집 r, c는 1부터 시작 치킨거리 : 집과 가장 가까운 치킨집과의 거리 도시의 치킨 거리 : 모든 집의 치킨 거리 합 치킨집 M개 빼고 모두 폐업 시킴 도시의 치킨 거리가 가장 작게 될 때의 치킨 거리 출력 ✔ 접근 과정 치킨집, 집 list 생성 dfs (combination/ 조합)으로 chicken.size..
[BJ] 16236: 아기상어 www.acmicpc.net/problem/16236 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가 www.acmicpc.net 한달만에 다시 풀어봤는데 다시 푼 방법이 더 편하고 시간도 훨씬 단축된다. ✔ 문제 조건 N * N 크기, 물고기 M마리, 상어 1마리 map[][] 0 : 빈칸 1 ~ 6: 물고기 크기 9 : 아기 상어 상어 최초 크기: 2 상 하 좌 우 중 한칸 이동 1초에 한 칸 이동 상어 > 물고기 : 지나갈 수 있음 / 먹을 수 있음 상어 = 물고기 : 지나갈 수 있음 / 먹을 수..
[BJ] 14503. 로봇 청소기 www.acmicpc.net/problem/14503 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net import java.io.*; import java.util.*; // 210420 public class Main_BJ_14503_로봇청소기 { static int N, M, total; static int[][] map; // 빈 칸은 0, 벽은 1 static int robotR, robotC, robotDir; static int[] dr = {-1, 0, 1, 0}..
www.acmicpc.net/problem/19237 19237번: 어른 상어 첫 줄에는 N, M, k가 주어진다. (2 ≤ N ≤ 20, 2 ≤ M ≤ N2, 1 ≤ k ≤ 1,000) 그 다음 줄부터 N개의 줄에 걸쳐 격자의 모습이 주어진다. 0은 빈칸이고, 0이 아닌 수 x는 x번 상어가 들어있는 칸을 의미 www.acmicpc.net ✔ 문제 조건 N*N 크기 격자, M마리 상어 모든 상어는 자신의 위치에 냄새를 뿌린 후 1초마다 상하좌우로 이동하며 냄새를 뿌린다. 냄새는 상어가 k번 이동하고 나면 사라진다. 이동방향 결정 1) 상하좌우 냄새가 없는 칸 2) 그러한 칸이 없으면 상하좌우 자신의 냄새가 있는 칸 3) 가능한 칸이 여러 개: 특정 우선순위를 따른다. 우선순위는 상어마다 / 상어의 현재..
www.acmicpc.net/problem/16973 16973번: 직사각형 탈출 크기가 N×M인 격자판에 크기가 H×W인 직사각형이 놓여 있다. 격자판은 크기가 1×1인 칸으로 나누어져 있다. 격자판의 가장 왼쪽 위 칸은 (1, 1), 가장 오른쪽 아래 칸은 (N, M)이다. 직사각형의 가장 www.acmicpc.net ✔ 문제 조건 1. 격자판의 가장 위쪽 위칸은 (1, 1), 가장 오른쪽 아래 칸은 (N, M). 1-1. 격자판의 각 칸은 빈 칸 or 벽 2. 이동시킬 직사각형의 가장 위쪽 위칸은 (sr, sc)이며, 크기는 W * H이다. 2-1. 직사각형은 벽이 있는 칸에 갈 수 있다. 3. 직사각형의 가장 위쪽 위칸은 (sr, sc)에서 시작해서 (er, ec)까지 갈 수 있는 최소 이동 횟수..