
BackLink: Bare-Git Repository란? References What do you use to manage dotfiles? - StreakyCobra on Feb 10, 2016, HackerNews The best way to store your dotfiles: A bare Git repository - Gabrielle Young Dotfiles - Atlassian Bitbucket Tutorials git checkout 기본적인 틀은 dotfiles의 변화를 기록하는 Bare-Git Repo를 $HOME/.cfg 라는 사이드 폴더에 생성하여 $HOME 을 Workspace로 삼는 것이다. 그리고 해당 Bare-Git Repo들에게만 작동하도록 특별히 지정한 git aliase..

References What is a bare Git repo and why you need them bare repos in git - GeekforGeeks What is a bare git repository? - Jon Saints What is a Bare Git Repository? git init은 원하는 디렉토리 내에서 git을 활성화할 때 쓰는 명령어다. 이를 실행하면 Git 프로그램에서 주시하는 해당 디렉토리에 대한 모든 Git 관련 데이터를 저장하고 관리하는 .git 이라는 디렉토리가 생성된다. 통상적으로 사람들이 git init 명령어를 통해 어떤 디렉토리에서 Git을 활성화하거나 Github에서 git clone 명령어로 레포지토리를 어떤 디렉토리로 clone 할 때 해당 디렉토리..
알고리즘의 정의 알고리즘이란 주어진 문제를 해결하기 위한 '잘 정의된' 동작들의 유한 집합이다. -, 이재규 - 알고리즘이란 쉽게 생각하면 어떠한 문제를 직면했을 때 해당 문제를 풀기 위한 방법이다. 해당 문제의 상황 자체를 이해하여 입력값이 필요하다면 입력값을 지니고, 그 입력값으로 문제를 해결했는지를 알기 위한 출력값이 최소한 한개 이상 필요하다. 위의 동작이란 문제를 풀기 위한 세분화된 단계들을 의미하며 이는 컴퓨터에서 명령어들을 말한다. 그렇다면 '잘 정의된' 명령어란 무엇일까. 명확성 명령어는 수행환경에서의 동작이 명확해야한다. => 명확해야 한다는 의미가 내게는 다소 모호한데, 이는 내게 어느 누가 보더라도 해당 명령어가 같은 동작을 한다는 의미로 해석된다. 다시 ..

References : Python Comparison Equivalence VS Identity Python Comparison Operator 파이썬의 참/거짓 판별에 대한 공식문서에 들어가보면 is 연산자와 == 연산자를 확인할 수 있다. 뭔가 직관적인 의미상으로는 둘다 동일한 것인지에 대해 판별하기 위해 도입한 연산자인 것 같은데, '무엇'이 동일한지에 대한 명확한 이해가 필요해 보여 정리를 해보자 한다. 이를 확인하려면 영어 공식문서를 보는 것이 훨씬 명확한듯하다. 공식문서에서는 다음과 같이 명시되어 있다. == 연산의 경우 Equal이라는 표현을 쓰며, is 연산자는 Object Identity라는 표현을 쓴다. 다만 개인적으로는 == 연산자는 Equal이라는 표현보다는 Equivalent라는..

문제 https://www.acmicpc.net/problem/2902 2902번: KMP는 왜 KMP일까? 입력은 한 줄로 이루어져 있고, 최대 100글자의 영어 알파벳 대문자, 소문자, 그리고 하이픈 ('-', 아스키코드 45)로만 이루어져 있다. 첫 번째 글자는 항상 대문자이다. 그리고, 하이픈 뒤에는 반드 www.acmicpc.net 풀이 해석 문제 자체의 난이도도 브론즈2 수준으로 그닥 어렵진 않지만 이 문제를 포스팅하는 이유는 C++로 문자열을 잘라내는 것이 Python만큼 간단하게 되지 않기 때문이다. Python으로 이 문제를 푼다면 list(str.split('-'))으로 문자열을 분리해서 리스트로 묶어내고 각 첫 글자만 모아 출력하면 간단히 끝난다. 하지만 C++에서는 이렇게 문자열을 ..

https://www.acmicpc.net/problem/1018 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 문제 문제 분석 나는 이 문제를 정상적인 체스판과 '다른' 부분들의 개수를 찾는 것이라고 생각했다. 여기서 정상적인 체스판이란 8 x 8의 W부터 시작하는 체스판과 B부터 시작하는 체스판, 2 종류이다. 프로그래밍이니 B와 W라는 표현은 적합하지 않으므로, 각각 0과 1로 치환하여 2차원 벡터를 만들었다. => 이 두 벡터는 chess1, chess2라 명명한다. 멀쩡한 체스판과 '다른' ..

https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net 문제 해석 연속되어 있는 단어들 중, 앞서 나온 단어가 후에 동떨어져서 출현한다면, 해당 단어는 그룹 단어가 아니다. 따라서 스트링으로 받고, 연속되는 지점이 끊기는 지점 (ex- aaabc에서 마지막 a에 해당하는 지점)에서 해당 문자가 뒤쪽 스트링에 나타나는지 확인하여 나타난다면 no를, 나타나지 않는다면 yes를 출력한다. 코드

https://www.acmicpc.net/problem/1673 1673번: 치킨 쿠폰 강민이는 치킨 한 마리를 주문할 수 있는 치킨 쿠폰을 n장 가지고 있다. 이 치킨집에서는 치킨을 한 마리 주문할 때마다 도장을 하나씩 찍어 주는데, 도장을 k개 모으면 치킨 쿠폰 한 장으로 교환 www.acmicpc.net 문제 코드 풀이 문제 해석이 조오끔 난해했다. 맨처음 n마리의 치킨을 시키면 그만큼의 도장이 또 생기고, 그를 k 번 나눈 몫만큼의 치킨을 또 시킬 수 있고, 그만큼의 도장이 또 생긴다. 이렇게 생긴 도장이 맨처음 시킨 치킨 n마리만큼의 도장//k 만큼을 합친 것 만큼 또 합쳐져 시킨을 시킬 수 있다. 이를 while 문으로 계속 돌려 끝까지 돌린다음 나온 총 먹은 치킨 값이 답으로 도출이 된다.