본문 바로가기

c104

[백준/C,C++] 7569번: 토마토 www.acmicpc.net/problem/7569 7569번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net 풀이 www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net 7576번: 토마토 문제와 비슷한데 3차원으로 업그레이드된 문제입니다... 2021. 5. 5.
[백준/C,C++] 1012번: 유기농 배추 www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 풀이 모든 방문하지 않은 좌표를 돌며 DFS가 몇번 실행되는지 탐색하면 되는 문제입니다. #include #include #include using namespace std; const int MAX = 50; int m, n, k; int map[MAX][MAX]; bool visited[MAX][MAX]; pair direction[4] = { {1, 0}, {0, 1}, {-1, 0}, {0, -1} }; int re.. 2021. 5. 5.
[백준/C,C++] 2606번: 바이러스 www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net 풀이 1번을 기준으로 DFS나 BFS를 돌려주기만 하면 되는 문제입니다. #include #include using namespace std; const int MAX = 101; vector v[MAX]; bool visited[MAX]; int res = -1; void DFS(int node) { res++; visited[node] = true; size_t sz = v[node].size(); for (si.. 2021. 5. 5.
[백준/C,C++] 18870번: 좌표 압축 www.acmicpc.net/problem/18870 18870번: 좌표 압축 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X1, X2, ..., XN에 좌 www.acmicpc.net 풀이 입력된 수열을 오름차순으로 정렬한 후, 압축합니다. 압축할 땐, 넘버링에 쓰일 변수를 유지하며 다음의 원소가 현재 원소보다 크다면 넘버링을 하고 1을 증가 시켜 주고, 아니라면 그대로 유지합니다. 다시 인덱스대로 정렬해야 하기때문에, 초기 입력받을 때 Pair(인덱스, 값)의 형태로 입력받고 값을 기준으로 오름차순 정렬하고 넘버링을 한 후에 다시 인덱스를 .. 2021. 4. 21.