(C++) 백준 1992.쿼드트리
·
Algorithm
문제 설명압축 가능한 정사각형 형태의 구역을 탐색하는 문제흑백 영상을 압축하여 표현하는 쿼드트리문제 풀이압축 가능한 영역을 가로 세로 길이가 N인 영역부터 탐색을 시작하여 범위를 줄여간다.압축이 가능한지 판별후 불가능하다면 새로운 범위를 탐색 시작하며 '(' 를 추가하고 특정 구역에 대한 탐색이 끝날때마다 ')' 를 추가한다.분할 정복 알고리즘(Divide and conquer)를 이용하여 탐색 영역을 좁혀가며 왼쪽 상단, 오른쪽 상단, 왼쪽 하단, 오른쪽 하단 순으로 탐색한다.코드#include using namespace std;#define FOR(i,N) for(int i=1; i> N; FOR(i,N) { string s; cin >> s; for(int j=0; j
(C++) 백준 1068.트리
·
Algorithm
백준 1068번 트리 (C++)문제 설명문제에서는 각각 노드의 부모노드를 알려주는 방식으로 트리를 제공한다. 해당 트리에서 특정 번호의 노드를 제거 했을때 하위의 자식 노드들은 사라지게 되고 이때 leaf node의 개수를 출력해야한다.문제 풀이입력 방식:편의상 각각의 노드 번호에 +1을 하여 1번~N번 노드로 정하고 풀이했다.루트 노드부터 방문해서 내려가기 위해서 루트 노드의 번호는 따로 vector에 저장했다.부모 노드부터 자식 노드까지 탐색하기 위해서 vector 배열을 이용해서 배열 인덱스에는 부모노드 해당 배열의 벡터 인덱스에는 자식 노드를 표시하였다.알고리즘 선택:더 이상 내려갈 수 없는 경우에 리프 노드의 개수를 +1 해주면 되기에 bfs를 사용했다. 루트 노드를 기준으로 dfs 혹은 bfs..