전체 글 222

Regular Expressions: Creating Binary String Patterns

정규 표현식(Regular Expression) - 시작이 10인 이진 문자열1. 문제 정의주어진 언어 ( L )은 "10"으로 시작하는 모든 이진 문자열입니다.즉, 첫 두 자리가 반드시 "10"이어야 하며, 이후에는 0과 1이 자유롭게 조합될 수 있습니다.이를 정규 표현식으로 표현해 보겠습니다.2. 정규 표현식의 구성(1) "10"으로 시작하는 문자열첫 두 자리가 "10"으로 고정되어 있어야 하므로, 표현식의 시작은 다음과 같습니다.10(2) "10" 이후의 문자열"10" 뒤에는 0과 1이 자유롭게 조합될 수 있으므로, 클레이니 스타(Kleene Star, *)를 사용합니다.(0|1)*이 표현식은 0과 1이 반복될 수 있음을 의미합니다.3. 최종 정규 표현식위 두 부분을 결합하면 최종 정규 표현식이 완..

Complementation of Regular Language: DFA 변환 원리

Complementation of Regular Language 요약 및 정리1. 개요정규 언어(Regular Language)의 여집합(Complementation)은 주어진 정규 언어에서 해당 언어에 속하지 않는 모든 문자열을 포함하는 언어를 의미한다. 즉, 어떤 DFA(Deterministic Finite Automaton)가 특정 언어 L을 인식한다고 할 때, 해당 DFA의 수락 상태(Accepting States)와 비수락 상태(Non-Accepting States)를 뒤바꾸면 L^c (언어 L의 여집합)를 인식하는 DFA를 만들 수 있다.2. 정규 언어의 여집합 특성정규 언어는 여집합을 취해도 정규 언어이다.즉, 만약 언어 L이 정규 언어라면, 그 여집합 L^c도 정규 언어이다.DFA를 이용해..

NFA to DFA Conversion: Subset Construction

이제 주어진 NFA(비결정론적 유한 오토마타)를 DFA(결정론적 유한 오토마타)로 변환하는 방법을 살펴보겠습니다.때때로 DFA를 직접 구성하는 것보다 NFA를 먼저 만들고 나서 이를 DFA로 변환하는 것이 더 나은 접근 방식이 될 수 있습니다. 그래서 우리는 먼저 NFA를 만들고, 이후에 DFA로 변환하는 과정을 진행할 것입니다.이제 변환 과정이 얼마나 간단한지 살펴보겠습니다.주어진 NFA는 상태 집합, 입력 알파벳(예: ε 포함 가능), 전이 함수, 그리고 NFA의 최종 상태(accepting states) 등으로 정의됩니다.이러한 NFA를 등가적인 DFA로 변환하는 것이 우리의 목표입니다.그렇다면 변환 방법을 알아보겠습니다.NFA를 DFA로 변환하는 과정은 몇 가지 단계로 이루어지며, 이를 이해하기 ..

GitHub 기본 개념과 실전 사용법 정리

GitHub 사용법 정리GitHub의 역할GitHub는 Git 저장소를 클라우드에서 호스팅하는 서비스다. 단순한 코드 저장소가 아니라 협업 도구로서도 활용된다.원격 저장소 관리: 언제 어디서나 코드 접근 가능팀 협업 지원: 여러 개발자가 동시에 작업 가능코드 리뷰 및 프로젝트 관리: 이슈 트래킹, 풀 리퀘스트(PR) 지원GitHub를 활용한 협업 예시개발자는 feature/login 브랜치에서 로그인 기능을 개발디자이너는 design/ui-update 브랜치에서 UI를 수정각자의 변경 사항을 GitHub에 푸시 후 리뷰를 거쳐 main에 병합GitHub를 사용하는 이유1. 코드 백업 및 협업원격 저장소를 통해 코드 백업 가능여러 브랜치를 활용한 팀 개발 가능2. 오픈 소스 기여React, TensorFl..

Git 변경 사항 복구 완벽 정리: Checkout, Reset, Revert, Restore

이전 커밋 확인하기: Git의 시간 여행Git에서는 과거의 특정 상태를 확인하고 싶을 때, 해당 커밋을 직접 체크아웃할 수 있습니다. 이를 위해 git log --oneline 명령어를 사용하여 원하는 커밋의 해시를 찾고, git checkout 를 실행하면 됩니다. 과거 커밋 체크아웃하기다음과 같은 브랜치 구조가 있다고 가정해봅시다.* (HEAD -> main) c5d3a1d 최신 커밋* a8f1b2c 새로운 기능 추가* 4f1b3e9 버그 수정* 7a3c2d1 개츠비 → 캐츠비 이름 변경* 3d2e1f7 1장과 2장으로 분리* 9c8b7..

Git Stash: 변경 사항 임시 저장과 복원

Git Stash: 변경 사항 임시 저장과 복원1. Git Stash 개요git stash는 커밋하지 않은 변경 사항을 임시로 저장하고 워킹 디렉토리를 초기 상태로 되돌리는 기능입니다.이를 통해 브랜치를 자유롭게 이동하면서도 변경 사항을 보관할 수 있습니다.📌 Git Stash가 필요한 상황변경 사항을 커밋하지 않고 다른 브랜치로 이동해야 할 때 작업을 중단하고 나중에 다시 이어서 해야 할 때 불필요한 커밋 없이 변경 사항을 임시 저장하고 복원하고 싶을 때 2. 기본 명령어: git stash와 git stash pop🔹 변경 사항 임시 저장git stash스테이징 여부와 관계없이 변경 사항을 임시 저장 워킹 디렉토리는 커밋된 상태로 초기화됨 🔹 저장된 변경 사항 복원git stash po..