본문 바로가기

Problem Solving43

#15683 감시 문제 링크 : https://www.acmicpc.net/problem/15683 15683번: 감시 스타트링크의 사무실은 1×1크기의 정사각형으로 나누어져 있는 N×M 크기의 직사각형으로 나타낼 수 있다. 사무실에는 총 K개의 CCTV가 설치되어져 있는데, CCTV는 5가지 종류가 있다. 각 CCTV가 감 www.acmicpc.net 딱 봐도 Brute-force로 풀리는 문제다. 구현하는게 번거로울 것 같다만.. 일단 cctv의 유형에 따라 볼 수 감시할 수 있는 방향의 차이가 있기에 이를 먼저 어떻게 처리할지 생각해야 한다. cctv가 보는 방향을 바꿀 수도 있기 때문에 방향까지 고려해줘야 한다. cctv의 타입에 따라, cctv의 방향에 따라, 감시할 수 있는 방향들을 3차원 백터의 형태로 만들어.. 2022. 1. 6.
#14809 경사로 문제 링크: https://www.acmicpc.net/problem/14890 14890번: 경사로 첫째 줄에 N (2 ≤ N ≤ 100)과 L (1 ≤ L ≤ N)이 주어진다. 둘째 줄부터 N개의 줄에 지도가 주어진다. 각 칸의 높이는 10보다 작거나 같은 자연수이다. www.acmicpc.net 경우의 수를 일일이 따져주는게 생각보다 시간이 오래 걸렸다. 먼저, 지도를 왼쪽에서 오른쪽, 위에서 아래로 훑으며 각각의 행, 열이 길이 될 수 있는지를 확인하고 길이라면 길의 개수를 1씩 증가시켜 줄 것이다. 그렇다면 이제는 길이 될 수 있는지를 판별하는 로직을 짜기만 하면 된다. 로직을 설명하기 전, 변수를 정의하자 l = 경사로의 가로 길이 prev_h = 이전 칸의 높이 height[i][j] = (.. 2022. 1. 5.
#14503 로봇 청소기 문제 링크: https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net 설명에 맞게 그냥 구현하기만 하면 된다. 방향에 유의할 것 #include using namespace std; int dir_x[4] = {0, 1, 0, -1}; int dir_y[4] = {-1, 0, 1, 0}; int state[50][50]; int main() { int n, m; scanf("%d %d", &n, &m); int cur_x, cur_y, dir; sca.. 2022. 1. 4.