2023년 7월 24일 알고리즘 문제 풀이 보고서

문제 T1: XOR과 K의 인수 시험 중에는 정해를 생각하지 못하고 브루트포스로 풀었습니다. 브루트포스는 접두사 XOR을 미리 계산한 후, 모든 구간을 순회하며 구간 XOR이 K의 약수인지 확인하는 방식입니다. 복잡도는 높지만 80점을 받을 수 있었습니다. #include <bits/stdc++.h> #define int long long #define N 1000100 using namespace std; int n, k, arr[N], p ...

8월 20일 04:39에 게시됨

C 언어에서 변수 교환 방법 3가지

프로그래밍을 하다 보면 두 변수의 값을 서로 교환해야 하는 상황이 빈번하게 발생한다. 가장 일반적인 방법은 임시 변수를 사용하는 것이지만, 면접이나 코딩 테스트에서 임시 변수 없이 값을 교환하는 방법을 물어보는 경우도 많다. 본 글에서는 C 언어를 기준으로 변수 교환의 세 가지 방법을 살펴보도록 한다. 1. 임시 변수 방식 (Three-Variable Method) 가장 기본 ...

7월 23일 11:44에 게시됨

선형 기저(Linear Basis)를 활용한 XOR 최적화 문제 분석

2024 CCPC Online Contest: 최댓값의 최소화 문제 2024 CCPC 인터넷 예선 J번 문제는 두 시퀀스의 XOR 합을 조정하여 그 중 최댓값을 최소화하는 문제입니다. 길이 $n$인 두 수열 $a, b$가 주어지며, 동일한 인덱스 $i$에 대해 $a_i$와 $b_i$를 교환하는 연산을 원하는 만큼 수행할 수 있습니다. 이때 $f(a) = \bigoplus_{i=1}^n a_i$와 $f(b) = \bigoplus_{i=1}^n b_i$를 ...

7월 23일 08:18에 게시됨

KMP 알고리즘과 문자열 검색 패턴 매칭 기법 종합 정리

문자열 접두사-접미사 매칭 문제 개요 여러 문자열의 접두사와 접미사를 매칭하는 문제는 일반적으로 전처리 과정을 통해 해결한다. 고정된 단어 개수를 가진 문자열 배열 s[n]이 주어졌을 때, 각 문자열을 cin으로 입력받아 처리한다. for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { // 여러 문자열 매칭을 위한 전처리 연산 } } ...

7월 17일 02:04에 게시됨

Buuctf - findKey

Reverse Engineering을 통해 키를 찾는 방법 LRESULT __stdcallWndProc(HWND hWndParent, UINT Msg, WPARAM wParam, LPARAM lParam) { // 각종 변수와 버퍼 선언 HDC hdc; struct tagPAINTSTRUCT Paint; CHAR Buffer[100]; struct tagRECT Rect; // 문자열 로드 LoadStringA(hInstance, 0x6Au, Buffer, 100); if (Msg > 273) { if (Msg == 517) { ...

7월 15일 03:36에 게시됨

XOR 선형 기저(Linear Basis)의 이해와 구현

1. 선형 기저(Linear Basis)의 정의와 성질 집합 $S$에 대한 XOR 선형 기저 $B$는 $S$의 부분집합 XOR 합으로 만들 수 있는 모든 값의 집합을 동일하게 생성할 수 있는 최소 크기의 집합입니다. 선형 대수학에서의 기저(Basis) 개념을 XOR 연산과 벡터 공간 $GF(2)^n$으로 가져온 것이라 이해할 수 있습니다. 선형 기저는 다음과 같은 핵심 성질을 가집니다. 원래 수 ...

5월 24일 16:01에 게시됨