Codeforces Global Round 27 문제 분석 및 풀이

A번: 빨간 점 제거 후 남은 영역 계산 격자판에서 특정 위치 (r, c)의 빨간 점을 제거했을 때, 나머지 칸들을 세 가지 구역으로 나누어 계산한다. 오른쪽에 있는 열들은 각 행마다 m - c칸만큼 이동하며 영향을 받고, 아래쪽 행 전체는 m * (n - r)만큼 더해진다. 마지막으로 대각선 아래 왼쪽 부분은 (m - 1) * (n - r)로 계산할 수 있다. 최종 답은 이 세 값을 합한 것이 ...

7월 31일 20:29에 게시됨

C++ 비트 연산 최적화 기법

비트 연산은 정수 데이터를 이진수 단위로 다루는 저수준 연산으로, 알고리즘 문제 해결과 시스템 프로그래밍에서 핵심적인 역할을 한다. C++은 여섯 가지 비트 연산자를 제공하여 메모리 효율성과 실행 속도를 극대화할 수 있다. 핵심 연산자 동작 원리 AND 연산 (&)는 두 피연산자의 대응 비트가 모두 1일 때만 1을 반환한다. 플래그 검증이나 특정 비트 마스킹에 ...

7월 18일 19:43에 게시됨

Codeforces Round 865 (Div. 2) 문제 풀이 분석

Codeforces Round 865 (Div. 2)의 A번부터 D번까지의 문제 풀이를 분석합니다. 각 문제의 핵심 아이디어와 구현 전략을 상세히 다룹니다. A. Ian Visits Mary 이 문제는 두 양의 정수 $a$와 $b$가 주어졌을 때, $(0,0)$에서 시작하여 $(a,b)$에 도달하는 최소 이동 횟수를 찾는 것입니다. 한 번의 이동으로 $(x,y)$에서 $(x+dx, y+dy)$로 이동할 수 있으며, 이때 ...

7월 16일 02:13에 게시됨

AtCoder ABC368 풀이: A~F번 문제 분석

A - Cut 문제 요약 길이 n인 수열에서 마지막 k개 원소를 앞으로 이동시킨 결과를 출력한다. 핵심 아이디어 배열을 회전시키는 기초적인 구현 문제이다. n-k 인덱스부터 끝까지의 원소를 먼저 출력한 뒤, 나머지 원소를 순서대로 출력하면 된다. 구현 #include <bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nu ...

6월 30일 23:02에 게시됨

2025년 2월 셋째 주 알고리즘 훈련 요약

알고리즘 훈련 주간 리뷰 (2.17 ~ 2.23) 훈련 종료 및 소감 겨울 방학 동안 진행된 알고리즘 훈련이 이번 주를 끝으로 종료되었습니다. 전반적인 훈련 성과는 아쉬운 수준이었으며, 집중력 저하가 두드러졌습니다. 자택 환경에서는 자연스럽게 느슨해지는 경향이 있었고, 학교 내에서의 학습 효율성에 비하면 현저히 떨어졌습니다. 개학 이후에는 이러한 태도를 개선하고 ...

6월 19일 20:22에 게시됨

ICPC NERC 2022-2023 문제 해결 기록 및 구현 코드

A - Amazing Trick 이 문제는 순열 조건을 만족하는 두 개의 순열 \( p_1 \)과 \( p_2 \)를 찾는 것이 목표다. 주어진 배열 \( a \)에 대해, 모든 \( i \)에서 \( p[i] \neq i \)이고 \( p[i] \neq a[i] \)인 순열 \( p \)를 무작위로 생성하여 유효성을 검사한다. 난수 셔플을 여러 번 시도한 후 조건을 만족하면 이를 기반으로 \( p_1 \)과 \( p_2 \)를 구성한다. #inclu ...

6월 16일 01:29에 게시됨

2025 NOI 문제 풀이 기록 (2)

By DaiRuichen007 라운드 #65 - 20250326 A. [AT-CF17-F] 숫자 분배 문제 링크 문제 요약 \(\text{정수 } n \in [1000, 2000], k \text{를 선택하여},\) 크기가 \(k\)인 \([1,n]\)의 부분집합을 \(n\)개 만들되, 임의의 두 집합 간 교집합 크기는 \(1\)이 되고, 각 원소는 정확히 \(k\)번 등장하도록 한다. 해법 분석 모든 집합 쌍이 공통 원소를 가지도록 하기 위해, ...

5월 24일 11:47에 게시됨