-
[BOJ] #15684 _ 사다리 조작Problem Solving/BOJ 2019. 10. 21. 21:09
[사다리 조작] https://www.acmicpc.net/problem/15684 15684번: 사다리 조작 사다리 게임은 N개의 세로선과 M개의 가로선으로 이루어져 있다. 인접한 세로선 사이에는 가로선을 놓을 수 있는데, 각각의 세로선마다 가로선을 놓을 수 있는 위치의 개수는 H이고, 모든 세로선이 같은 위치를 갖는다. 아래 그림은 N = 5, H = 6 인 경우의 그림이고, 가로선은 없다. 초록선은 세로선을 나타내고, 초록선과 점선이 교차하는 점은 가로선을 놓을 수 있는 점이다. 가로선은 인접한 두 세로선을 연결해야 한다. 단, 두 가로선이 연속하거나 서로 www.acmicpc.net 사다리를 map이라는 이차원 배열을 이용하여 사다리의 상태를 저장해주었다. 가로선이 이어질 수 없기 때문에 배열로 ..
-
[BOJ] #15683 _ 감시Problem Solving/BOJ 2019. 10. 20. 23:39
[감시] https://www.acmicpc.net/problem/15683 15683번: 감시 스타트링크의 사무실은 1×1크기의 정사각형으로 나누어져 있는 N×M 크기의 직사각형으로 나타낼 수 있다. 사무실에는 총 K개의 CCTV가 설치되어져 있는데, CCTV는 5가지 종류가 있다. 각 CCTV가 감시할 수 있는 방법은 다음과 같다. 1번 CCTV는 한 쪽 방향만 감시할 수 있다. 2번과 3번은 두 방향을 감시할 수 있는데, 2번은 감시하는 방향이 서로 반대방향이어야 하고, 3번은 직각 방향이어야 한다. 4번은 세 방향, 5번은 네 방향을 감시할 www.acmicpc.net dfs를 이용하여 각 cctv가 볼 수 있는 4가지 방향의 모든 경우의 수를 고려해주었다. 모든 cctv의 방향이 결정되면, 각 ..
-
[BOJ] #14890 _ 경사로Problem Solving/BOJ 2019. 10. 20. 23:24
[경사로] https://www.acmicpc.net/problem/14890 14890번: 경사로 첫째 줄에 N (2 ≤ N ≤ 100)과 L (1 ≤ L ≤ N)이 주어진다. 둘째 줄부터 N개의 줄에 지도가 주어진다. 각 칸의 높이는 10보다 작거나 같은 자연수이다. www.acmicpc.net 해당 문제는 SWEA의 활주로 건설과 동일한 문제로 시뮬레이션 문제이다. 다시 풀어보았는데, SWEA 때와는 또 다른듯 비슷하게 구현한 것 같다. 개인적인 느낌으로 좀 더 간결해진 것 같다. [ 소스 코드 ] #include #include #include #define MAX 100 using namespace std; int N, L; int map[MAX][MAX]; int solve(); int mai..
-
[BOJ] #14500 _ 테트로미노Problem Solving/BOJ 2019. 10. 20. 23:16
[테트로미노] https://www.acmicpc.net/problem/14500 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변끼리 연결되어 있어야 한다. 즉, 꼭짓점과 꼭짓점만 맞닿아 있으면 안 된다. 정사각형 4개를 이어 붙인 폴리오미노는 테트로미노라고 하며, 다음과 같은 5가지가 있다. 아름이는 크기가 N×M인 종이 위에 테트로미노 하나를 놓으려고 한다. 종이는 1×1 크기의 칸으로 나누 www.acmicpc.net dfs를 이용하여 모든 경우의 수를 고려하여 최대 값을 구하였다. 모든 좌표를 시작점으로 두고, 5가지의 각 테트로미..
-
[BOJ] #13458 _ 시험 감독Problem Solving/BOJ 2019. 10. 20. 22:48
[시험 감독] https://www.acmicpc.net/problem/13458 13458번: 시험 감독 첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000) www.acmicpc.net 총 감독관 한 명이 최대로 감시할 수 있는 수를 빼고, 부감독의 수를 구해주었다. [ 소스 코드 ] #include #include int N, A[1000001], B, C; int main() { int count = 0; scanf("%d", &N); for (int i = 1; i