본문 바로가기

그래프탐색2

[백준] 2583 - 영역 구하기 (Python) 문제 출처 : www.acmicpc.net/problem/2583 2583번: 영역 구하기 첫째 줄에 M과 N, 그리고 K가 빈칸을 사이에 두고 차례로 주어진다. M, N, K는 모두 100 이하의 자연수이다. 둘째 줄부터 K개의 줄에는 한 줄에 하나씩 직사각형의 왼쪽 아래 꼭짓점의 x, y좌표값과 오 www.acmicpc.net 문제 풀이 : 맵을 생성한다 이후 주어지는 패치에 대해서 map 값을 1로 바꿔준다. 이후 모든 패치가 붙여진 map에 대해서 순회를 돌면서 0값이 있을때는 DFS()를 수행하며 0값이 있었던 블록과 붙어있는 넓이를 구한다. 이후 넓이를 area 리스트에 넣어놓고 모든 맵이 순회가 끝나면, 정렬 후 정답을 출력한다. m,n,k = map(int,input().split()) m.. 2021. 3. 17.
[백준] 7569 - 토마토 (C++) 문제 출처 : www.acmicpc.net/problem/7569 7569번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net 문제 풀이 : 지난번에 푼 토마토 문제(문제번호를 보면 다른 문제다 !)와 매우 흡사한 문제다. 다른점은 그냥 3차원으로 확장했다는 것인데 사실 3차원으로 확장한다해도 결국은 컴퓨터에겐 3차원의 개념이 없다는 점에서 index만 잘 고려해 준다면 크게 어려울 것이 없다. 지난번 토마토 문제에서와 바뀐점은 그냥 h(높이 부분)에 해당되는 움직임만 추가해주고 전체 로직은 똑같다.. 2021. 3. 9.
반응형