문제1926번: 그림문제 이해도화지에 그려진 그림의 개수와 그림 중 넓이가 가장 넓은 그림의 넓이를 출력1로 연결된 것을 한 그림이라고 정의, 가로나 세로는 연결된 것이고 대각선은 떨어진 것그림의 넓이란 그림에 포함된 1의 개수입력 조건첫째 줄에 도화지의 세로 크기 n(1 두 번째 줄부터 n+1 줄까지 그림의 정보가 주어짐 (0 : 색칠 안 된 부분, 1 : 색칠된 부분)출력 조건첫째 줄에는 그림의 개수, 둘째 줄에는 가장 넓은 그림의 넓이를 출력단, 그림이 하나도 없는 경우에는 가장 넓은 그림의 넓이는 0풀이DFS를 사용해 도화지의 모든 부분을 순회하며, 그림의 개수와 가장 넓은 넓이를 탐색입력 조건에 맞게 n, m, graph(도화지) 입력dfs 함수 구현 : count를 인자로 넣어 그림의 넓이를 ..
문제1012번: 유기농 배추문제 이해배추 흰 지렁이를 배추 근처에 두고 배추를 보호하려고 함지렁이는 인접(상하좌우)한 배추로 이동할 수 있음최소 배추 흰 지렁이 마리 수 출력테스트 케이스 개수 T, 가로 길이 M, 세로 길이 N, 배추가 심어져 있는 위치의 개수 K, 배추의 위치 X, Y입력 조건 : 1 풀이DFS (깊이 우선 탐색)을 사용해서 모든 땅을 순회하며, 배추가 존재하는 영역을 카운트공부했던 '이것이 취업을 위한 코딩 테스트다 with 파이썬'의 DFS 예시와 비슷한 풀이로 구현이 가능입력 조건에 맞게 t, m, n, k, graph(배추밭), x, y 입력dfs 함수 구현밭의 범위를 넘어가면 False밭의 범위 내에 있고 배추가 있으면, 다시 상하좌우로 이동하여 배추가 있는지 확인모든 땅을 ..
DFS & BFS탐색 (Search)이란 많은 양의 데이터 중 원하는 데이터를 찾는 과정이다. 프로그래밍에서는 그래프, 트리 등의 자료구조 안에서 탐색하는 문제를 자주 다룬다. 대표적인 탐색 알고리즘으로 DFS, BFS가 있다. 이를 이해하기 위해 몇 개의 자료구조를 먼저 알아봐야 한다.자료구조 기초스택 (Stack)선입후출(FILO) or 후입선출(LIFO) : 나중에 들어온 것이 먼저 나감Python의 list : 삽입(append), 삭제(pop)예시 : (박스 쌓기) 아래에서 위로 쌓고 아래의 박스를 치우기 위해 위의 박스를 먼저 내려야 함큐 (Queue)선입선출(FIFO) : 먼저 들어온 것이 먼저 나감python의 deque : 삽입(append), 삭제(popleft)예시 : (대기 줄) 입..