전체 글61 기수 정렬 (Radix Sort) 기수 정렬(Radix Sort) 의 개념 요약 자릿수를 기준으로 차례대로 데이터를 정렬하는 정렬 알고리즘이다. 여기서 '기수' 라는 것은 '자릿수' 를 의미한다. 구체적 개념 낮은 자리수부터 비교하여 정렬해 간다는 것을 기본 개념으로 하는 알고리즘이다. 비교 연산을 하지 않아서 정렬 속도가 빠르지만 데이터 전체 크기에 기수 테이블의 크기만한 메모리가 더 필요하다. 이 메모리는 기수 정렬에서 '버킷' 이라고 불리는데 숫자에 알맞게 새로운 공간에 값을 임시적으로 저장해주는 것이라고 생각하면 된다. 밑에서 더 자세히 설명하겠다. 가장 작은 자리수부터 비교하는 방법을 LSD(Least-Significant-Digit)라고 한다. 가장 큰 자리수부터 비교하는 방법은 MSD(Most-Significant-Dig.. 2022. 8. 13. IPC(Inter Process Communication) 프로세스는 독립적으로 실행된다. 즉, 독립 되어있다는 것은 다른 프로세스에게 영향을 받지 않는다고 말할 수 있다. (스레드는 프로세스 안에서 자원을 공유하므로 영향을 받는다) 때문에, 원칙적으로 다른 프로세스의 주소 공간을 참조할 수 없다. 하지만, 이런 독립적 구조를 가진 프로세스 간의 통신을 해야 하는 상황이 있을 것이다. 이를 가능하도록 해주는 것이 바로 IPC(Inter Process Communication) 통신이다. 프로세스는 커널이 제공하는 IPC 설비를 이용해 프로세스간 통신을 할 수 있게 된다. ※ 커널이란? 운영체제의 핵심적인 부분으로, 다른 모든 부분에 여러 기본적인 서비스를 제공해준다. IPC 종류 공유메모리 방식 통신을 이용한 설비가 있지만, 데이터 자체를 공유하도록 지원하는 방.. 2022. 8. 7. 합병정렬 (Merge Sort) 합병 정렬(Merge Sort) 의 개념 요약 분할 정복 알고리즘 중 하나이다. 분할 정복(divide and conquer) 방법 - 큰 문제를 작은 문제 단위로 쪼개면서 해결해나가는 방식 문제를 작은 2개의 문제로 분리하고 각각을 해결한 다음, 결과를 모아서 원래의 문제를 해결하는 전략이다. 분할 정복 방법은 대개 순환 호출을 이용하여 구현한다. 하나의 리스트를 두 개의 균등한 크기로 분할하고 분할된 부분 리스트를 정렬한 다음, 두 개의 정렬된 부분 리스트를 합하여 전체가 정렬된 리스트가 되게 하는 방법이다. 구체적인 개념 합병 정렬은 다음의 단계들로 이루어진다. 분할(Divide) : 입력 배열을 같은 크기의 2개의 부분 배열로 분할한다. 정복(Conquer) : 부분 배열을 정렬한다. 부분 배열의.. 2022. 8. 7. git cherry-pick (원하는 commit 가져오기) cherry pick이란, 체리 한 바구니에서 제일 좋은 체리만 고르는 것에서 유래한 표현이라고 한다. 일반적으로는 제일 좋은 걸 선별한다는 뜻으로 쓰인다. git을 이용해 코드 관리를 하다보면 커밋을 다른 브랜치에 잘못 하거나, 요구사항이 바뀌어 필요 없는 커밋이 생기거나, 코드 의존성(dependency) 때문에 다른 사람의 커밋 중 일부를 가져와야 하는 경우가 종종 생긴다. git cherry-pick 명령어는 특정한 commit 하나만 콕 찝어서 현재 HEAD가 가리키는 branch에 추가할 수 있게 해준다. 쉽게 말해서 다른 branch에 있는 여러개의 commit들 중, 원하는 commit을 지금 내 branch에 가져와서 commit 할 수 있는 것이다. 참고로 commit을 branch에서.. 2022. 7. 31. git remote branch 가져오기 Git을 사용하다보면 원격 저장소에 있는 branch를 로컬 저장소로 가져와야하는 경우가 있다. 협업하고 있는 다른 팀원의 branch를 가져와서 작업을 해야하는 경우 혹은 혼자서 2대의 PC를 사용하고 작업파일을 Git으로 관리하는데 branch를 따서 작업하는 경우 등이 여기에 해당한다. 실제 나도 회사에서 두 개의 원격 저장소에서 작업을 하다보니 다른 원격 저장소에서 작업한 branch를 로컬 저장소로 가져와야 하는 경우가 있었다. git checkout -t 명령을 이용하면 원격 저장소의 branch를 가져오는 것과 동일한 기능을 한다. git remote update 먼저 원격 저장소의 브랜치에 접근하기 위해서는 git remote를 갱신해줄 필요가 있다. $ git remote update 원.. 2022. 7. 31. git remote add (원격저장소 추가) add remote는 로컬 git 저장소에 원격 저장소를 추가하는 명령어이다. 이미 특정 원격 저장소와 연결이 되어 있을때, 해당 저장소와의 연결을 끊고 다른 저장소와 새로 연결을 하거나 혹은 한번에 여러 개의 저장소에 push 하는 등 여러가지 용도로 사용할 수 있는 명령어이다. 원격 저장소 확인 로컬 저장소에 연결된 원격 저장소를 확인하는 명령어이다. 연결된 원격 저장소가 없다면, 아무것도 출력이 되지 않을 것이다. $ git remote 원격 저장소 추가 방법 아래 명령어로 로컬 저장소와 연결시키고자 하는 원격저장소를 추가할 수 있다. 별칭은 일반적으로 origin을 사용하며, 원격 저장소 URL은 원격 저장소에 복사 가능하다. $ git remote add 이미 origin(별칭) 이라는 이름의 .. 2022. 7. 31. 이전 1 ··· 4 5 6 7 8 9 10 11 다음