본문 바로가기

분할 정복4

[Leetcode]932. Beautiful Array 문제 요약알고리즘 분류: 분할정복난이도: Medium문제내용:nums는 [1, n] 범위의 정수들의 순열입니다.모든 0 정수 n이 주어졌을 때, 길이가 n인 임의의 아름다운 배열 nums를 반환하세요. 주어진 n에 대해 적어도 하나의 유효한 답이 존재합니다.사이트 주소: https://leetcode.com/problems/beautiful-array/description/문제풀이이 문제를 풀기 위한 핵심 통찰은 분할 정복(Divide and Conquer)을 활용하는 것입니다. 분할 정복에 대한 내용은 아래 글에서 확인 해보면 됩니다.https://jih3508.tistory.com/282 [알고리즘 이론] 분할 정복(Divide and Conquer)분할 정복(Divide and Conquer) 알고.. 2025. 5. 14.
[알고리즘 이론] 분할 정복(Divide and Conquer) 분할 정복(Divide and Conquer) 알고리즘 완벽 가이드1. 분할 정복이란?분할 정복(Divide and Conquer)은 복잡한 문제를 더 작고 관리하기 쉬운 하위 문제들로 나누어 해결하는 알고리즘 패러다임입니다. 이 방법론은 컴퓨터 과학의 여러 분야에서 광범위하게 사용되며, 많은 효율적인 알고리즘의 기초가 됩니다.분할 정복은 다음 세 가지 주요 단계로 구성됩니다:분할(Divide): 원래 문제를 여러 개의 작은 하위 문제로 나눕니다.정복(Conquer): 하위 문제들을 재귀적으로 해결합니다. 하위 문제가 충분히 작으면 직접 해결합니다.결합(Combine): 하위 문제들의 해결책을 결합하여 원래 문제의 해결책을 만듭니다.2. 분할 정복의 장점분할 정복 접근법은 다음과 같은 여러 가지 장점을 .. 2025. 5. 14.
[BAEKJOON] 10830 행렬 제곱 문제 요약 알고리즘 분류: 수학, 재귀호출, 분할정복 난이도: Gold2 문제내용: 행렬의 N 제곱을 구한뒤 각 원소마다 1,000을 나눈 나머지를 구해라. 사이트 : https://www.acmicpc.net/problem/11401 10830번: 행렬 제곱 크기가 N*N인 행렬 A가 주어진다. 이때, A의 B제곱을 구하는 프로그램을 작성하시오. 수가 매우 커질 수 있으니, A^B의 각 원소를 1,000으로 나눈 나머지를 출력한다. www.acmicpc.net 문제풀이 이번 문제 내용는 2가지만 알면 쉽게 풀수 있다고 생각한다. 첫번째는 행렬 제곱을 처리 하는 방법이다. 행렬 제곱은 행렬 곱셈만 구현 하면 되기 때문에 밑에 사이트에 문제 풀어보거나 복습하면 풀수가 있다. https://jih3508.t.. 2022. 11. 24.
[BAEKJOON] 11401 이항 계수 3 문제 요약 알고리즘 분류: 수학, 조합, 재귀호출 난이도: Gold2 문제내용: 조합한 결과를 1,000,000,007로 나눈 나머지를 출력해라 사이트 : https://www.acmicpc.net/problem/11401 11401번: 이항 계수 3 자연수 \(N\)과 정수 \(K\)가 주어졌을 때 이항 계수 \(\binom{N}{K}\)를 1,000,000,007로 나눈 나머지를 구하는 프로그램을 작성하시오. www.acmicpc.net 문제풀이 이번 문제 내용은 간단한데 데이터의 범위가 4,000,000 이라서 O(N)으로 풀어도 데이터 저장할수 있는 숫자와 배열의 크기가 넘어 갈뿐만 아니라 메모리도 초과 되어서 다른 방법으로 접근 해야 한다. 문제 접근 방법 정상적인 DP 방법으로도 안되서 나머지.. 2022. 11. 22.