목록재귀 (8)
기록방
👉 문제링크 🔸 문제 분석 🔸 이진 검색 트리의 전위 순회 결과를 토대로 후위 순회 결과를 출력한다. 🔸 문제 풀이 🔸 전위 순회 결과를 EOF(End Of File : null)가 나올 때까지 입력받는다. 첫 번째 결과는 Root 로 사용한다. 이후 결과는 작으면 왼쪽 자식 노드, 크면 오른쪽 자식 노드로 구분해 재귀 메서드를 호출하고 저장한다. 전위 순회 결과로 만들어진 이진 검색 트리를 후위 순회 방식으로 재탐색하여 결과를 출력한다. 전위 순회와 비슷하지만, 탐색 순서만 변경하면 된다. 🔸 코드 🔸 import java.io.*; public class Main { private static class Node { private final int root; private Node left; priv..
👉 문제링크 2448번: 별 찍기 - 11 첫째 줄에 N이 주어진다. N은 항상 3×2k 수이다. (3, 6, 12, 24, 48, ...) (0 ≤ k ≤ 10, k는 정수) www.acmicpc.net 🔸 문제 분석 🔸 N이 3x2^k (0
👉 문제링크 1914번: 하노이 탑 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 www.acmicpc.net 🔸 문제 분석 🔸 3개 장대와 N개의 원판이 있는 하노이탑 문제를 구현한다. 원판을 옮긴 횟수를 출력한다. 원판을 옮길 때를 재귀로 나눠 구현한다. 원판의 높이가 1일때와 그보다 클 때로 나눠 생각한다. 예를 들어 2개의 원판을 옮길 때, 첫 원판은 임시 지점에 놓는다. 두 번째 원판은 목적지에 놓는다. 첫 원판을 목적지의 두 번째 원판 위에 놓는다. 따라서 세 막대를 시작, 임시, 목적 세 지점으로 나눠 재귀적으로 생각 할 수 있다. N이 너무 커지..
👉 문제링크 1992번: 쿼드트리 첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1 ≤ N ≤ 64의 범위를 가진다. 두 번째 줄부터는 길이 N의 문자열이 N개 들어온다. 각 문자열은 0 또 www.acmicpc.net 🔸 문제 분석 🔸 n x n 크기의 영상 정보에서 0 또는 1로 압축된 결과를 출력한다. 정사각형이 하나의 수로만 이루어져 있으면 그 수로 압축가능하다. 해당 수를 출력한다. 다른 수가 섞여있으면, 정사각형을 4등분해서 다시 압축한다. 4등분 했을때 결과값은 () 괄호로 묶어 출력한다. 재귀를 이용해서 정사각형이 하나의 수로 이루어져있지 않으면 4등분 값을 다시 검사하는 방식으로 해결한다. 🔸 코드 🔸 import java.io.Buff..
👉 문제링크 2630번: 색종이 만들기 첫째 줄에는 전체 종이의 한 변의 길이 N이 주어져 있다. N은 2, 4, 8, 16, 32, 64, 128 중 하나이다. 색종이의 각 가로줄의 정사각형칸들의 색이 윗줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진다. www.acmicpc.net 🔸 문제 분석 🔸 N x N 크기의 정사각형 종이를 같은 색으로만 이루어진 정사각형으로 자를 때 최소 개수를 출력한다. 종이를 자르는 방법은 한 변의 길이를 절 반으로 하는 정사각형 4개를 만드는 것이다. 한 정사각형 범위가 모두 같은 색인지 체크하고, 같지 않다면 4등분으로 잘라 다시 색을 체크하는 재귀 메서드를 사용한다. 재귀 메서드의 입력 값은 한 변의 길이와 좌상단의 좌표이다. 🔸 코드 🔸 import java.ut..