목록전체 글 (38)
kimgusxo 님의 블로그
1. 비트마스킹(Bitmasking)이란?- 비트마스킹은 1개의 정수의 비트(0, 1)을 이용해 여러 개의 Boolean 상태(선택/미선택)을 압축해 표현 및 연산하는 기법이다.- 조합/부분 집합 문제, 탐색 및 DP 문제에서 자주 사용된다. 1-1. 핵심 아이디어- mask | (1 - mask & (~(1 - mask ^ (1 - mask & (1 1-2. 비트마스킹 장단점- 장점: int 하나면 N - 단점: 표현 가능한 상태의 수가 정수 비트 수로 제한된다. 1-3. 비트마스킹 자주쓰는 패턴- 부분 집합 열거: for(int mask = 0; mask - 서브마스크 열거: for (sub = mask; sub > 0; sub = (sub-1) & mask)- 상태 압축 DP: dp[mask][p..

1. 분할정복(Divide and Conquer)이란?- 분할정복은 문제를 작은 하위 문제로 분할(Divide)하고 각각을 재귀적으로 해결(Conquer)한 뒤 다시 합쳐(Merge) 전체 문제의 해답을 얻는 알고리즘 기법이다.- 대표적으로 병합 정렬(Merge Sort), 퀵 정렬(Quick Sort), 큰 수 거듭제곱 문제 등이 있다. 1-1. 핵심 아이디어- 분할(Divide): 해결하고자 하는 문제를 더 이상 분할할 수 없거나 충분히 작아질 때까지 여러 하위 문제로 나눈다.- 정복(Conquer): 분할된 하위 문제를 재귀적으로 해결한다.- 병합(Merge): 각각의 하위 문제에서 구한 해답을 병합하여 원래 문제의 답을 도출한다. 1-2. 장점 및 단점- 장점: 큰 문제를 여러개의 작은 문제로 나..
1. .gitignore와 글로벌 Ignore1-1. .gitignore의 역할깃이 추적하지 않아야 하는 파일(로그, 빌드산출물, 보안 설정 파일 등)을 명시하는 설정파일협업 시 불필요하거나 민감한 파일이 깃 히스토리에 포함되지 않도록 관리한다.# 빌드 산출물(바이너리, 클래스, 패키징 결과 등)target/build/...# Eclipse/IntelliJ/VSCode 등 IDE 설정 파일*.iml*.ipr...# OS별 불필요 파일.DS_StoreThumbs.db# 환경 변수나 민감 정보(예: 로컬 환경 설정).env 1-2. 글로벌 Ignore특정 프로젝트뿐 아니라 전체 OS에서 공통으로 무시할 파일(IDE 설정 파일 등)을 일괄적으로 등록하고 싶은때 사용한다.git config --global co..
1. 팀 협업을 위한 워크플로우 구성1-1. 브랜치 전략 수립기능별 분리 작업: 각 기능 개발이나 버그 수정을 위해 별도의 브랜치를 생성한다.이를 통해 메인브랜치에는 안정적인 코드만 남기고 개별 작업은 독립적으로 진행할 수 있다.git checkout -b feature/login정기적 동기화: 기능 브랜치 작업 중에도 메인 브랜치의 최신 변경 사항을 주기적으로 반영한다.git pull origin main병합과 리베이스: 작업 브랜치를 메인 브랜치에 통합할 때 병합 커밋을 허용할지 또는 깔끔한 히스토리를 위해 리베이스를 사용할지 결정한다. 1-2. Pull Request(PR) 기반 프로세스Pull Request 생성: 기능 브랜치에서 작업한 후 원격 저장소(Github)에 푸쉬한다.git push o..