Dynamic Programming (동적 계획법)
Dynamic Programming? DP(Dynamic Programming, 동적 계획법)는 복잡한 문제를 여러 개의 작은 하위 문제(Subproblem)로 나누어 해결한 뒤, 그 결과를 재사용하여 전체 문제를 효율적으로 해결하는 알고리즘입니다. 대표적인 예로 피보나치 수열을 생각해 보겠습니다. int fib(int n) { if (n...
Dynamic Programming? DP(Dynamic Programming, 동적 계획법)는 복잡한 문제를 여러 개의 작은 하위 문제(Subproblem)로 나누어 해결한 뒤, 그 결과를 재사용하여 전체 문제를 효율적으로 해결하는 알고리즘입니다. 대표적인 예로 피보나치 수열을 생각해 보겠습니다. int fib(int n) { if (n...
git rebase에 대한 자세한 내용은 “git rebase?”를 참고하세요. Interactive rebase? Interactive rebase는 이미 만들어진 커밋 히스토리를 사용자가 직접 편집할 수 있는 기능입니다. 왜 필요한가? 실제 개발하다 보면 커밋 히스토리가 항상 깔끔하게 만들어지지 않습니다. 1aq9 최종 회원가입 기능...
git rebase? git rebase는 해당 브랜치의 커밋들을 새로운 기준 커밋(base) 위에 재적용하여 브랜치의 시작 지점을 변경하고 히스토리를 재구성하는 기능입니다. 사용 예시: git checkout develop git rebase <target> 의미: develop 브랜치의 커밋들을 target을 기준으로 다시 적...
Linear Sieve? Linear Sieve 또는 오일러의 체라 불리는 알고리즘으로 N 이하의 소수를 선형 시간 O(N) 내에 찾아내는 소수 판별 알고리즘입니다. 기존의 에라토스테네스의 체의 합성수는 여러 번 방문하는 비효율적인 부분을 개선하여 각 합성수를 정확히 한 번만 처리하도록 만든 알고리즘입니다. 기존의 에라토스테네스의 체를 개선했...
프로그래머스 '억억단을 외우자' 문제 풀이
프로그래머스 '등대' 문제 풀이
프로그래머스 '숫자 타자 대회' 문제 풀이
프로그래머스 '야근 지수' 문제 풀이
LeetCode 'Zigzag Conversion' 문제 풀이
Manacher’s Algorithm? 마나커 알고리즘(Manacher’s Algorithm)은 문자열에서 각 문자를 중심으로 하는 가장 긴 팰린드롬의 길이를 O(N에 찾는 알고리즘입니다. 팰린드롬? 앞으로 읽으나 뒤로 읽으나 똑같은 단어, 문자열, 숫자열 등을 의미합니다. 기호 및 변수 정의 S : 문자열 i : 현재 탐색하...