블록 기반 구조와 블록 리스트의 활용

블록 분할 기법 길이가 n인 배열을 약 √n개의 블록으로 나누면, 각 블록의 크기는 최대 √n이 되며, 임의의 구간 연산은 최대 √n개의 완전한 블록과 두 개의 부분 블록으로 표현 가능하다. 시간 복잡도는 기존의 O(n²)에서 O(n√n)으로 개선된다. 기본 구현 틀 #include <iostream> #include <cmath> #include <cstdio> using namespace std; typedef ...

6월 21일 03:59에 게시됨

조합론과 수론의 주요 개념들

조합론과 수론은 알고리즘 문제 해결에서 중요한 역할을 한다. 여기에서는 이 분야의 핵심적인 개념들과 이를 활용한 몇 가지 기법들을 다룬다. 조합론 가법 원리와 곱셈 원리 가법 원리에 따르면, 어떤 일을 수행하는 두 가지 방법이 있을 때 첫 번째 방법으로는 a개의 방법이 있고, 두 번째 방법으로는 b개의 방법이 있다면 총 a+b개의 방법으로 일을 완수할 수 있다. 곱 ...

6월 20일 17:51에 게시됨

소인수분해 구현: 루트 N 최적화 방법

소인수분해 문제 양의 정수 N이 주어졌을 때, 이를 소수들의 곱으로 분해하는 문제입니다. 예: 60 = 2 × 2 × 3 × 5 입력 조건 하나의 정수 N (2 ≤ N ≤ 1,000,000,000) 출력 조건 N의 소인수들을 오름차순으로 출력 예시 입력: 60 출력: 2 2 3 5 입력: 3 출력: 3 접근 방법 초보자들은 보통 2부터 N까지 반복문을 돌며 확인하지만, N이 최대 10억일 때는 시간 초과 ...

6월 20일 06:12에 게시됨

TV 구독 최소화 문제 (고급 버전)

시간 제한: 2초 메모리 제한: 256MB 입력: 표준 입력 출력: 표준 출력 쉬운 버전과 고급 버전의 유일한 차이점은 제약 조건입니다. BerTV 채널은 매일 k개의 TV 프로그램 중 하나의 에피소드를 방영합니다. 다음 n일간의 방송 스케줄을 알고 있습니다: 정수 시퀀스 a₁, a₂, ..., aₙ (1≤aᵢ≤k), 여기서 aᵢ는 i일째에 방영될 프로그램입니다. 프로그램 구독은 해당 프로그램의 ...

6월 20일 01:25에 게시됨

데이터 구조에서 맵과 세트 (하)

이전 글에서 다루지 못한 기술적 개념을 찾으세요: **개인 홈페이지:**我要学编程(ಥ_ಥ)-CSDN 블로그 소속 전문: 데이터 구조 (Java 버전) 이전 글에서는 이진 탐색 트리, 맵과 세트의 기본 개념, 해시 테이블의 충돌 해결 방식 등을 다뤘습니다. 데이터 구조에서 맵과 세트 (상) - CSDN 블로그 이제 나머지 주제를 살펴보겠습니다. 목차 충돌 해결 - 클로즈드 해싱 충돌 ...

6월 20일 01:11에 게시됨

임베디드 C++ 알고리즘 완벽 가이드

1. 수정되지 않는 시퀀스 알고리즘 이러한 알고리즘들은 작업 중인 컨테이너의 요소들을 변경하지 않습니다. 1.1 찾기 알고리즘: find와 find_if find(start, end, value): value와 동일한 첫 번째 요소를 찾아 반복자를 반환 (없으면 end 반환) find_if(start, end, 조건자): 조건을 만족하는 첫 번째 요소를 찾습니다 find_end(start, end, sub_start, sub_end): 부분 ...

6월 19일 01:34에 게시됨

Codeforces Round 1029 Div.3 A-D번 문제 해설

A. False Alarm 문제의 지시에 따라 직접 구현하면 됩니다. 1이 등장하는 위치들을 기록하고, 인접한 1들 사이의 거리를 누적하여 총 소요 시간을 계산합니다. 정답 코드: #include <bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int tc; cin >> tc; while (tc--) { ...

6월 18일 01:45에 게시됨

스캔라인 알고리즘: 오프라인 2차원 문제 해결 기법

서론 이전에는 잘 이해하지 못해 문제를 풀 때마다 막혔지만, 최근 교육에서 이 개념을 다시 배우면서 깊이 이해하게 되어 이를 정리한 노트를 작성하게 되었습니다. 여기서 다루는 스캔라인은 더 정확히 말해 오프라인 2차원 수 문제를 의미하며, 한 차원은 스캔라인으로 관리하고 다른 차원은 자료구조로 관리하는 방식입니다. 개념 2차원 수 문제를 평면에 나타내면, 각 ...

6월 17일 18:53에 게시됨

USACO 2022년 11월 대회 문제 풀이: 외톨이 사진과 단어 맞추기

문제 1: 외톨이 사진(Lonely Photo) 농장주 존이 N마리의 소를 새로 샀다. 각 소는 게른지(Guernsey) 또는 홀스틴(Holstein) 품종이다. 소들이 한 줄로 서 있을 때, 길이가 3 이상인 모든 연속 구간에 대해 사진을 찍는다. 단, 구간 내에 특정 품종이 정확히 한 마리만 존재하는 "외톨이 사진"은 폐기처분한다. 폐기되는 사진의 총 개수를 구하라. 입력 첫 줄: N (소의 ...

6월 16일 01:00에 게시됨

버블모임과 플러그인 문제 해결

버블모임 문제 이 문제는 문자열을 처리하여 특정 패턴을 검사하는 문제입니다. 문자열 중 'o'와 'O'의 조합을 통해 새로운 문자열을 생성하는 로직이 핵심입니다. 코드 설명: 입력 문자열을 처리하는 함수는 다음과 같이 작동합니다: 스택 자료구조를 사용하여 문자를 임시 저장합니다. 'o'와 'O'의 조합을 통해 새로운 문자열을 형성합니다. 최종적으로 스택에 ...

6월 15일 22:36에 게시됨