문제https://www.acmicpc.net/problem/15685백준 문제집 - 0x0D강 - 시뮬레이션 알고리즘: 시뮬레이션풀이드래곤 커브는 다음과 같은 세 가지 속성으로 이루어져 있으며, 이차원 좌표 평면 위에서 정의된다. 좌표 평면의 x축은 → 방향, y축은 ↓ 방향이다.- 시작 점- 시작 방향- 세대0세대 드래곤 커브는 길이가 1인 선분이다. 1세대 드래곤 커브는 0세대 드래곤 커브를 끝 점을 기준으로 시계 방향으로 90도 회전시킨 다음 0세대 드래곤 커브의 끝 점에 붙인 것이다. 끝 점이란 시작 점에서 선분을 타고 이동했을 때, 가장 먼 거리에 있는 점을 의미한다.드래곤 커브의 정보는 네 정수 x, y, d, g로 이루어져 있다. x와 y는 드래곤 커브의 시작 점, d는 시작 방향, g는 ..
python
문제https://www.acmicpc.net/problem/14502백준 문제집 - 0x0D강 - 시뮬레이션 알고리즘: 시뮬레이션, BFS풀이바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다.연구소는 크기가 N×M인 직사각형으로 나타낼 수 있으며, 직사각형은 1×1 크기의 정사각형으로 나누어져 있다. 연구소는 빈 칸, 벽으로 이루어져 있으며, 벽은 칸 하나를 가득 차지한다.일부 칸은 바이러스가 존재하며, 이 바이러스는 상하좌우로 인접한 빈 칸으로 모두 퍼져나갈 수 있다. 새로 세울 수 있는 벽의 개수는 3개이며, 꼭 3개를 세워야 한다.벽을 3개 세운 뒤, 바이러스가 퍼질 수 없는 곳을 안전 영역이라고 한다.연구소의 지도가 주어졌을 때 얻을 수 있는 안전 영역 크기의 최댓값을 구하는 프로그램을..
문제https://www.acmicpc.net/problem/14890백준 문제집 - 0x0D강 - 시뮬레이션 알고리즘: 시뮬레이션풀이지도에서 지나갈 수 있는 길이 몇 개 있는지 알아보려고 한다. 길이란 한 행 또는 한 열 전부를 나타내며, 한쪽 끝에서 다른쪽 끝까지 지나가는 것이다.길을 지나갈 수 있으려면 길에 속한 모든 칸의 높이가 모두 같아야 한다. 또는, 경사로를 놓아서 지나갈 수 있는 길을 만들 수 있다. 경사로는 높이가 항상 1이며, 길이는 L이다. 또, 개수는 매우 많아 부족할 일이 없다.경사로는 낮은 칸과 높은 칸을 연결하며, 아래와 같은 조건을 만족해야한다.- 경사로는 낮은 칸에 놓으며, L개의 연속된 칸에 경사로의 바닥이 모두 접해야 한다.- 낮은 칸과 높은 칸의 높이 차이는 1이어야 ..
문제https://www.acmicpc.net/problem/16985백준 문제집 - 0x0D강 - 시뮬레이션 알고리즘: 시뮬레이션, BFS, 백트래킹풀이미로를 이 세상 그 누구보다 사랑하는 준현이는 3차원 미로 탈출 대회를 개최하기로 했다.대회의 규칙은 아래와 같다.- 5×5 크기의 판이 5개 주어진다. 이중 일부 칸은 참가자가 들어갈 수 있고 일부 칸은 참가자가 들어갈 수 없다. 그림에서 하얀 칸은 참가자가 들어갈 수 있는 칸을, 검은 칸은 참가자가 들어갈 수 없는 칸을 의미한다.- 참가자는 주어진 판들을 시계 방향, 혹은 반시계 방향으로 자유롭게 회전할 수 있다. 그러나 판을 뒤집을 수는 없다.회전을 완료한 후 참가자는 판 5개를 쌓는다. - 판을 쌓는 순서는 참가자가 자유롭게 정할 수 있다. 이렇..
문제https://www.acmicpc.net/problem/14503백준 문제집 - 0x0D강 - 시뮬레이션 알고리즘: 시뮬레이션풀이로봇 청소기와 방의 상태가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오.로봇 청소기가 있는 방은 NxM 크기의 직사각형으로 나타낼 수 있으며, 1x1 크기의 정사각형 칸으로 나누어져 있다.각각의 칸은 벽 또는 빈 칸이다. 청소기는 바라보는 방향이 있으며, 이 방향은 동, 서, 남, 북 중 하나이다. 방향 조절만 잘 해주면 쉬운 문제다.초기 방향은 d로 주어지고 이후 조건에 따라서 90º씩 회전시켜주면 된다.문제를 보면 로봇청소기의 행동은 총 세 단계로 구성되어있다.현재 칸이 청소되지 않은경우 청소현재 칸의 동서남북으로 청소되지않은 칸이 없다면,뒤에 벽..
문제https://www.acmicpc.net/problem/18809백준 문제집 - 0x0C강 - 백트래킹 알고리즘: 그래프, 브루트포스, 백트래킹, BFS, 시뮬레이션풀이BOJ 마을에서는 직접 사람이 씨앗을 심는 대신 초록색 배양액과 빨간색 배양액을 땅에 적절하게 뿌려서 꽃을 피울 것이다. 이 때 배양액을 뿌릴 수 있는 땅은 미리 정해져있다.배양액은 매 초마다 이전에 배양액이 도달한 적이 없는 인접한 땅으로 퍼져간다.초록색 배양액과 빨간색 배양액이 동일한 시간에 도달한 땅에서는 두 배양액이 합쳐져서 꽃이 피어난다. 꽃이 피어난 땅에서는 배양액이 사라지기 때문에 더 이상 인접한 땅으로 배양액을 퍼트리지 않는다.배양액은 봄이 지나면 사용할 수 없게 되므로 주어진 모든 배양액을 남김없이 사용해야 한다. 예..