-
[C++] 백준 15684번 | 사다리 조작Problem Solving/Baekjoon 2023. 7. 14. 02:34
사다리 조작 15684번: 사다리 조작 사다리 게임은 N개의 세로선과 M개의 가로선으로 이루어져 있다. 인접한 세로선 사이에는 가로선을 놓을 수 있는데, 각각의 세로선마다 가로선을 놓을 수 있는 위치의 개수는 H이고, 모든 세로선 www.acmicpc.net ✍🏻 풀이 처음에는 인접한 번호를 잇는 가로선이 각 줄마다 짝수개면 각 번호에 도착하게 될 줄 알았는데, 예제 5를 보고 잘못 생각했다는 걸 깨달았다. 5 8 6 1 1 2 2 3 3 4 4 3 1 4 2 5 3 6 4 그렇다고 사다리를 놓는 모든 경우의 수를 탐색하자니, 시간 초과가 날 것이다. 이 문제를 해결하기 위해서는 정답이 3보다 큰 값이면 -1을 출력한다. 라는 조건을 잘 사용해야 한다. 이 조건은 사다리를 0, 1, 2, 3개를 놓았을 ..
-
[C++] 백준 12100 | 감시Problem Solving/Baekjoon 2023. 7. 14. 02:19
감시 15683번: 감시 스타트링크의 사무실은 1×1크기의 정사각형으로 나누어져 있는 N×M 크기의 직사각형으로 나타낼 수 있다. 사무실에는 총 K개의 CCTV가 설치되어져 있는데, CCTV는 5가지 종류가 있다. 각 CCTV가 감 www.acmicpc.net ✍🏻 풀이 solution 함수에서 cctv들의 방향을 상, 하, 좌, 우 중 선택한다. monitor 함수에서 감시 할 수 있는 칸을 표시해준다. 이 때, 사무실에는 벽이 있는데, CCTV는 벽을 통과할 수 없다. 이 조건을 꼭! 생각해주어야 한다. 사각지대의 크기를 계산해 나가며 최솟값을 구한다. ✅ Accept Code // baekjoon 15683 #include using namespace std; int N, M; int room[8]..
-
[C++] 백준 14500 | 테트로미노Problem Solving/Baekjoon 2023. 6. 17. 20:19
테트로미노 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변 www.acmicpc.net ✍🏻 풀이 정사각형 4개를 이어 붙인 도형을 테트로미노라고 한다. 이 테트로미노는 위와 같이 총 5가지의 경우의 수로 나뉜다. (회전, 대칭 가능) 이 문제를 보고 DFS나 BFS로 풀면 간단하게 풀릴 거라고 생각했지만, 주의할 점이 있다. 언뜻 봤을 땐 깊이 4로 탐색하면 되지만 우리가 주목해야 할 건 'T' 모양의 테트로미노다. (ㅏ, ㅓ, ㅗ, ㅜ) 이 모양은 나머지 모양과 별개로 따로 탐색해주어야 한다! 또 주의해야 할 점은 주어진 배열의 범위가..
-
[C++] 백준 13458번 | 시험 감독Problem Solving/Baekjoon 2023. 6. 13. 21:17
시험 감독 13458번: 시험 감독 첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000) www.acmicpc.net ✍🏻 풀이 간단한 수학 문제 🤩 이 문제에서 주의해야 할 포인트는 두 가지가 있다. 첫 번째는 총감독관만으로 충분한 경우에 부감독관을 계산하지 않는 것이다. if (A[i] > N; for (int i = 0; i > tmp; A.push_back(tmp); } cin >> B >> C; ll result = N; // 각 시험장마다 배치된 총감독관 f..
-
[C++] 백준 3190번 | 뱀Problem Solving/Baekjoon 2023. 6. 13. 20:41
뱀 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net ✍🏻 풀이 복잡하게 생각할수록 더 복잡한 문제 🤯 처음에 뱀의 몸통 칸 하나 하나를 다 옮겨야한다고 생각해서 풀이가 많이 어려워졌었는데 문제를 다시 읽어보며 차근차근 따라가보니 아주아주 간단한 구현 문제였다 풀이를 설명할 것도 없이 문제에 너무 친절하게 다 나와있었다.. deque 자료구조를 이용해서 새롭게 전진하는 머리는 push_front() 메서드를 사용하였고, 전진함으로써 삭제되는 꼬리는 pop_back() 메서드를 사용해주었다. 재밌었음 ! ✅ Accept..
-
[C++] 백준 12100 | 2048(Easy)Problem Solving/Baekjoon 2023. 6. 11. 17:13
2048(Easy) 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2 www.acmicpc.net ✍🏻 풀이 2048 게임 👾 5번 안에 만들 수 있는 최대 숫자를 구해내는 문제였다. 아는 게임이라 문제 꼼꼼히 안 읽고 덤볐다가 6%에서 끙끙댔다... 🥹 정신 차리고 반례를 찾아 다녔는데 알고보니 어처구니 없는 실수를 했었다. 나는 DFS를 사용하여 탐색을 진행했다! DFS를 돌리다가 깊이가 5가 되면 최댓값을 구하고 전 단계로 돌아가게 하였다. ⭐️ 블록을 이동시킬 때마다 보드의 모양이 바뀌기 때문에, 전 단..
-
[C++] 백준 14499 | 주사위 굴리기Problem Solving/Baekjoon 2023. 4. 8. 17:36
주사위 굴리기 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 ✍🏻 풀이 단순 구현 문제였다. 연습장에 주사위를 그려가며 풀면 간단하게 해결할 수 있음 😀 1. 주사위 배열을 선언한 후, 다음과 같이 임의로 인덱스에 위치를 부여하였다. * 0: 위 * 1: 뒤 * 2: 아래 * 3: 앞 * 4: 왼쪽 * 5: 오른쪽 2. 주사위를 동, 서, 남, 북으로 굴렸을 때의 위치를 각각 함수로 구현하였다. (아래는 동쪽으로 굴렸을 때의 함수) void r..
-
[C++] 백준 14502번 | 연구소Problem Solving/Baekjoon 2023. 4. 8. 16:47
연구소 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net ✍🏻 풀이 크게 두 가지 과정을 거쳐 풀이하였다. 벽 세우기 ➡️ 조합 안전 영역 크기 계산 ➡️ BFS(너비 우선 탐색) 조합 문제 풀 때 아직 버벅이는 부분이 있다 추후 포스팅으로 정리하겠습니닷 ✅ Accept Code // baekjoon 14502 #include using namespace std; int N, M; int ans = 0; int virusMap[8][8]; int tmp[8][8]; queue virus; vector space; vector..