본문 바로가기

시뮬레이션4

[백준 Gold 4] 5427 불 - Java 문제링크 : https://www.acmicpc.net/problem/5427 5427번: 불 상근이는 빈 공간과 벽으로 이루어진 건물에 갇혀있다. 건물의 일부에는 불이 났고, 상근이는 출구를 향해 뛰고 있다. 매 초마다, 불은 동서남북 방향으로 인접한 빈 공간으로 퍼져나간다. 벽에 www.acmicpc.net 접근 과정 : 단순하게 BFS를 이용한 시뮬레이션이라고 생각했다. 각 테스트 케이스마다 BFS를 이용해서 탈출이 가능한지 시뮬레이션했다. 다만, 다음에 불이 번질 칸으로 이동하지 못하므로 불을 먼저 이동시키고 상근이가 가능한 경로를 탐색했다. 소스 코드 및 결과 : package BOJ; /* 불 */ import java.io.*; import java.util.*; public class BO.. 2022. 1. 1.
[백준 Gold 5] 15683 감시 - Java 문제링크 : https://www.acmicpc.net/problem/15683 15683번: 감시 스타트링크의 사무실은 1×1크기의 정사각형으로 나누어져 있는 N×M 크기의 직사각형으로 나타낼 수 있다. 사무실에는 총 K개의 CCTV가 설치되어져 있는데, CCTV는 5가지 종류가 있다. 각 CCTV가 감 www.acmicpc.net 접근 과정 : CCTV의 방향을 다 돌려보면서 완전탐색했다. 관건은. CCTV방향을 얼마나 효율적으로 돌리느냐 라고 생각했다. 방향을 상하좌우로 나눠서 어떤 하나의 방향이 주어질 때, 그 방향으로 모두 감시하는 함수를 설정하고 카메라의 종류에 따라 방향들을 주면서 확인했다. 카메라가 보고 있는 곳은 int[][] 에서 -1 시켜가면서 체크했다. dfs로 카메라를 하나하나, .. 2021. 12. 26.
[백준 Gold 2] 17143 낚시왕 - Java 문제링크 : https://www.acmicpc.net/problem/17143 17143번: 낚시왕 낚시왕이 상어 낚시를 하는 곳은 크기가 R×C인 격자판으로 나타낼 수 있다. 격자판의 각 칸은 (r, c)로 나타낼 수 있다. r은 행, c는 열이고, (R, C)는 아래 그림에서 가장 오른쪽 아래에 있는 칸이다. www.acmicpc.net 접근 과정 : 우선 1,1 부터 시작하는 좌표를 바꾸지 그대로 사용하려고 했다. 매번 낚시와 상어이동 이후에 좌표를 모두 바꿔주는 상황을 만들지 않기위해, 3차원 배열을 사용했다.. 상어가 같은 방향을 가지고 원래 자리로 돌아오는 것은 s = (범위-1)x2 인 것을 고려하여 s % (범위-1)x2를 적용. 그리고 상어 이동을 점화식으로 만들려고 했는데... 생각나.. 2021. 12. 26.
[백준 Gold 4] 14499 주사위 굴리기 - Java 문제 링크 : https://www.acmicpc.net/problem/14499 14499번: 주사위 굴리기 첫째 줄에 지도의 세로 크기 N, 가로 크기 M (1 ≤ N, M ≤ 20), 주사위를 놓은 곳의 좌표 x, y(0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), 그리고 명령의 개수 K (1 ≤ K ≤ 1,000)가 주어진다. 둘째 줄부터 N개의 줄에 지 www.acmicpc.net 문제 이해 : 지도 위에서, 주사위를 공처럼 굴리는 것을 상상 한 칸 굴렸을 때, 밑면의 숫자는 변하고, 윗면은 출력 주사위가 굴러갈 때, 어떻게 변하는 지 확인!! 접근 과정 : 굴러가는 방향에 따라, 주사위의 변화를 확인했고 이를 어떻게 반영할지 고민!! 첫번째 아이디어 주사위를 한 칸 굴리면 방향에 따라 한 칸씩.. 2021. 12. 16.