
'우선순위 큐'란 ? 우선순위큐는, 큐에 우선순위가 있는 것으로, 무작정 맨 앞의 값을 pop하는 것이 아니라, 가장 높은 우선순위의 값을 pop해주는 큐를 말한다. 이러한 우선순위 큐를 구현하는 가장 좋은 방법은 바로 'Heap'이다. 일반 배열이나, 연결리스트를 사용 할 수 있겠지만, 일반 배열/ 연결리스트를 사용할 경우, 값을 올바른 위치에 넣는 시간 혹은 정렬 시키는 시간이 O(n)이므로, 비효율적이다. 반면 heap는 O(log2N)의 시간 효율을 가지므로, 다른 방법보다 유리하다. 왜 heap가 O(log2N)의 시간효율을 갖는지 알기 위해서는 heap의 구현법을 알아보자. heap는 배열을 이용한 완전이진트리로 구현하게 된다. 완전 이진트리의 높이는 요소가 n개일 때 log2N이 된다. he..

1) 원격저장소 추가, push 하기 왜 원격저장소를 추가하는가? 이는 로컬 (우리의 컴퓨터)의 내용을 원격 저장소에 백업한다고 생각하면된다. 그래서 원격 저장소와 우리의 로컬의 저장소를 연결해야한다. 여기서 원격 저장소는 여러가지의 후보가 있지만 나는 가장 편한 github을 선택하였다. 이는 매우 쉽기때문에 글로만 설명하겠다. 1) git bash를 켜서 원하는 dir을 cd로 한다 2) git init을 해준다 3) github에 가서 New repository 버튼을 눌러준다. 4) 다시 git bash로 돌아와서 git remote add origin https://github.com/user/repo.git 을 입력한다. 여기서 뒤의 주소는 github에서 new repository의 url을..

해당 글은 생활코딩 GIT CLI 강의를 바탕으로 쓰여졌습니다. 위의 그림을 통해 알 수 있듯이, "Merge"란, 같은 조상 (base)을 가진 두 branch의 버전을 병합하여 , 새로운 버전을 만드는 것이다. 자 아래의 이미지를 통해 어떻게 merge를 하는지 보도록 하자. 먼저 첫 두 이미지는 공통조상에서 나온 브랜치가 각각 다른 버전을 만드는 과정이고 마지막 이미지가 바로 merge하는 것이다. 결과적으로 이렇게 새로운 버전이 탄생한다. 근데 merge에서 주의할 점은, 바로 conflict '충돌' 이다. 이 conflict는 각각 다른 파일의 내용을 다르게 한 버전들을 병합하거나, 같은 파일 내에서도 다른 부분의 내용을 가진 버전들을 병합할 때는 발생하지 않지만, "같은 파일의 같은 부분의 ..