1991번: 트리 순회 첫째 줄에는 이진 트리의 노드의 개수 N(1 ≤ N ≤ 26)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 노드와 그의 왼쪽 자식 노드, 오른쪽 자식 노드가 주어진다. 노드의 이름은 A부터 차례대로 알파 www.acmicpc.net 1. 문제 요약 이진 트리를 입력받아 전위 순회(preorder traversal), 중위 순회(inorder traversal), 후위 순회(postorder traversal)한 결과를 출력하라. 2. 접근 방법 새로운 노드로 이동할 때마다 순회별 방문 순서를 반복한다고 생각하면 됩니다. 순서가 헷갈릴 수 있는데, 세 단계를 반복하면 쉽습니다. 예시) 전위 순회의 경우 현재 노드 출력 왼쪽 이동 오른쪽 이동 2 - 1. 전위 순회 ABDCEFG /..
2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보 www.acmicpc.net 1. 문제 요약 나무의 수 n, 가져가려고 하는 나무의 길이 m이 주어지고, 나무의 높이 수열이 주어진다. 자를 높이를 지정하면 해당 높이에 맞게 모든 나무가 잘리며, 지정한 높이 이하의 나무들은 잘리지 않는다. m을 만족하면서 자를 수 있는 나무의 높이의 최솟값을 구하시오. 2. 접근 방법 자르는 높이 별로 얻을 수 있는 나무의 길이를 수열이라 생각하고 이분 탐색을 활용하여 풀면 쉽게 풀 수 있습니다. 빨간색이 배열의 인..
10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 1. 문제 요약 숫자 배열이 주어지고, 찾고자 하는 숫자가 주어졌을 때, 찾고자 하는 숫자가 배열에 존재하는지 판단하시오. 2. 접근 방법 이분 탐색 알고리즘을 사용합니다. 해당 알고리즘은 일반적으로 하는 up down 게임과 같은 원리입니다. 정렬된 상태에서 절반씩 소거하며 찾아내는 방법입니다. 오름차순으로 정렬된 배열에서 중간 부분을 탐색하고, 찾고자 하는 숫자보다 크면 해당 지점부터 끝부분까지의 중간 부분을 탐색합니다. 찾고자 ..
데이터가 정렬된 상태에서 절반씩 범위를 나눠 분할 정복 기법으로 특정한 값을 찾아내는 알고리즘 이진 탐색 알고리즘 동작 원리 Up&Down 게임과 흡사하다 정렬된 배열의 가장 중간 인덱스를 지정한다 찾으려고 하는 값이 지정한 중간 인덱스의 값이라면 탐색을 종료한다 찾으려고 하는 값이 중간 인덱스의 값보다 큰 값인지, 작은 값인지 확인한다 값이 있는 부분과 값이 없는 부분으로 분리한다 값이 있는 부분에서 다시 1단계부터 반복한다 장점 ( 주 사용처) 사전 검색, 도서관 도서 검색, 대규모 시스템에 대한 리소스 사항 파악 등 탐색을 반복할 때마다 탐색 범위가 절반으로 줄어들게 되는 이 알고리즘은 데이터 양이 많을수록 더 높은 효율을 가지게 된다 정렬된 배열에서 요솟값을 더 효율적으로 검색할 때 사용 데이터의..