최's 먹공로그
https://www.acmicpc.net/problem/15683 문제정리1. cctv의 종류는 5가지 1: 오른쪽 감시 , 2 : 오른쪽 왼쪽 감시 , 3 : 위 오른쪽 감시 , 4 : 위 오른쪽 왼쪽 감시 , 5 : 위 아래 오른쪽 왼쪽 감시2. cctv는 감시할 수 있는 방향에 있는 칸 전체를 감시할 수 있다 , 벽은 통과할 수 없고 벽은 6이다3. cctv는 회전시킬 수 있는데 , 회전은 항상 90도 방향으로 해야 하며 , 감시하려고 하는 방향이 가로 또는 세로 방향 이어야 한다4. cctv는 다른 cctv를 통과할 수 있다5. 사무실의 크기와 상태 , cctv정보가 주어졌을 때 , cctv의 방향을 적절히 정해서 사각 지대의 최소크기를 구하는 프로그램을 작성6. cctv의 최대 개수는 8개를 ..
https://www.acmicpc.net/problem/14500 문제요약 1. 그림과 같은 도형을 폴리오미노라고 한다 폴리오미노는 위 5가지만 존재한다 2. 크기가 N M인 종이 위에 폴리오미노를 하나 둔다 3. 폴리오미노에 해당하는 칸에 있는 숫자들의 합이 최대인 합을 출력 4. 폴리오미노는 회전 및 대칭 시켜도 된다 문제issue 딱히 없음 해결흐름 1. 총 5가지 폴리오미노를 회전 및 대칭 시켰을 때 모양이 변하는 폴리오미노까지 합하면 총 19가지의 형태가 나온다 2. N X M에서 한 칸당 19가지 형태의 합을 모두 살펴본다 3. 최댓값을 도출한다 소스코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29..
https://www.acmicpc.net/problem/3190 문제요약1. 사과를 먹으면 뱀 길이가 늘어난다2. 벽 또는 자신의 몸에 부딪히면 게임이 끝난다3. 게임이 시작할 때 뱀은 맨위 맨좌측(1,1)에 위치하고 뱀의 길이는 1 이다 , 처음에는 오른쪽으로 향한다4. 매초 마다 이동하는 규칙(1) 먼저 뱀은 몸길이를 늘려 머리를 다음칸에 위치시킨다(2) 만약 이동한 칸에 사과가 있다면, 그 칸에 있던 사과가 없어지고 꼬리는 움직이지 않는다(몸 길이가 늘어난다)(3) 만약 이동한 칸에 사과가 없다면, 몸길이를 줄여서 꼬리가 위치한 칸을 비워 준다5. 사과의 위치와 뱀의 이동경로가 주어질 때 이 게임이 몇 초에 끝나는지 계산6. 사과 : 사과의 위치는 모두 다르다 , (1,1)에는 사과가 없다7. 뱀..
https://www.acmicpc.net/problem/14890 문제요약1. 지도의 각 칸에는 그 곳의 높이가 적혀져 있다.2. 지나갈 수 있는 길이가 몇 개 있는지 알아 보는 문제3. 길이란 한 행 또는 한 열 전부를 나타낸다 , 한쪽 끝에서 다른쪽 끝까지 니나가는 것을 의미한다4. 길을 지나갈 수 있으려면 길에 속한 모든 칸의 높이가 모두 같아야 한다 , 또는 경사로를 놓아서 지나갈 수 있는 길을 만들 수 있다5. 경사로는 높이가 항상 1 , 길이는 L 이다6. 경사로는 낮은 칸과 높은 칸을 연결한다(1) 경사로는 낮은 칸에 놓으며 , L개의 연속된 칸에 경사로의 바닥이 모두 접해야 한다(2) 낮은 칸과 높은 칸의 높이 차이는 1 이어야 한다(3) 경사로를 놓을 낮은 칸의 높이는 모두 같아야 하고..
https://www.acmicpc.net/problem/17140 문제요약1. 1초가 지날때마다 배열에 연산이 적용된다.2. R연산 : 배열 A의 모든 행에 대해서 정렬을 수행한다 , 행의 개수 >= 열의 개수인 경우에 적용한다.C연산 : 배열 A의 모든 열에 대해서 정렬을 수행한다 , 행의 개수 < 열의 개수인 경우에 적용한다.3. 한 행 또는 한 열에 있는 수를 정렬하려면 각각의 수가 몇 번 나왔는지 알아야 한다.4. 정렬 : 수의 등장 횟수가 커지는 순으로 , 그러한 것이 여러개면 수가 커지는 순으로 정렬한다.5. 배열 A에 정렬된 결과를 다시 넣는다 , 수와 등장 횟수를 모두 넣는다 , 순서는 수가 먼저이다.6. 정렬된 결과를 배열에 다시 넣으면 행 또는 열의 크기가 커질 수 있다.R연산 C연산..
https://www.acmicpc.net/problem/16234 문제요약 1. 각 칸에는 A[r][c]명이 살고 있다.2. 인접한 나라 사이에는 국경선이 존재한다.3. 더 이상 아래 방법에 의해 인구 이동이 없을 때까지 지속된다.(1) 국경선을 공유하는 두 나라의 인구 차이가 L~R이라면, 두 나라가 공유하는 국경선을 하루동안 연다.(2) 위의 조건에 의해 열어야하는 국경선이 모두 열렸다면, 인구 이동을 시작한다.(3) 국경선이 열린 각 칸의 인구수는 (국경선이 열린 칸 인구수 총합) / (칸 수)가 된다.(4) 모든 국경선을 닫는다.4. 각 나라의 인구수가 주어졌을 때 인구 이동이 몇 번 발생하는지 구하는 프로그램을 작성하시오. 문제issue1. 인구 이동이 없을 때까지 지속해야한다.2. 인구 이동..
https://www.acmicpc.net/problem/17144 문제요약1. 공기청정기는 항상 왼쪽 열에 설치 , 크기는 두 행을 차지(공기청정기가 두개)1초동안 일어나는 일1. 미세먼지가 확산 , 확산은 모든 칸에서 동시에 발생함(1) 미세먼지는 인접한 네 방향으로 확산(2) 인접한 방향에 공기청정기가 있거나 , 칸이 없으면 확산 못함(3) 확산되는 양은 Ar,c / 5 소수점은 버림(4) (r,c)에 남은 미세먼지 양은 Ar,c - (Ar,c / 5) * 확산된 방향의 개수2. 공기청정기 작동(1) 위쪽 공기청정기의 바람은 반시계방향으로 순환 , 아래쪽 공기청정기의 바람은 시계방향으로 순환(2) 바람이 불면 미세먼지가 바람의 방향대로 모두 한 칸씩 이동(3) 공기청정기로 들어간 미세먼지는 모두 정..
https://www.acmicpc.net/problem/2146 문제요약1. 한 섬과 다른 섬을 잇는 다리 하나만을 만든다.2. 한 섬과 다른 섬을 잇는 다리 중에서 가장 짧은 다리로 결정한다.3. 지도가 주어질 때, 가장 짧은 다리 하나를 놓아 두 섬을 연결하는 방법을 찾자4. 0은 바다, 1은 육지 , 항상 두 개 이상의 섬이 있는 데이터만 주어진다.5. 가장 짧은 다리의 길이를 출력 문제issue1. 다른 섬이라는 표시 어떤식으로?? 해결흐름1. bfs를 사용하여 섬을 분류한다. 1번 섬은 1로 맵핑 , 2번 섬은 2로 맵핑 ......2. 각각의 섬에서 0과 인접한 곳을 발견하면 그때부터 다른 섬을 찾는 bfs2를 돌린다.3. bfs2는 한 턴에 큐의 사이즈 만큼 돌게끔 구현하며 0의 위치를 계..