목록Development (561)
컴공생의 다이어리
퀵 정렬(Quick Sort) 퀵 정렬은 분할 정복 알고리즘의 하나로 평균적으로 매우 빠른 수행 속도를 자랑하는 정렬 알고리즘이다. 합병 정렬(Merge Sort)과 달리 퀵 정렬은 리스트를 비균등하게 분할한다. 퀵 정렬은 불안정 정렬에 속하며, 다른 원소와의 비교만으로 정렬을 수행하는 비교정렬에 속한다. 하나의 리스트를 피벗(pivot)을 기준으로 피벗보다 작은 데이터와 큰 데이터를 두 개의 부분 리스트로 나눈 다음, 각 부분 리스트에 대해 다시 재귀적으로 수행하여 정렬하는 방법이다. 정렬 과정 배열 가운데서 하나의 원소를 선택(→ 이 원소가 피벗) 피벗을 기준으로 피벗보다 작은 원소들은 피벗 앞(왼쪽)으로 오고, 피벗보다 큰 원소들은 피벗 뒤(오른쪽)로 이동 피벗을 제외하고 나뉘게 된 두 배열은 앞 ..
[Git] Shallow Clone(git clone --depth) 한 후에 이전 히스토리(history) 복원 저장소의 전체 이력 중 일부만 받아오는 Shallow Clone을 하고 난 뒤, 받아왔던 커밋 말고도 이전 커밋을 가져올 수 있다. 만일, Shallow Clone을 한 후 저장소의 일부 커밋이 아닌 전체 커밋 히스토리를 불러오려면 아래 명령어를 입력하면 된다. git fetch --unshallow 그 다음 만일 최신 커밋을 포함해 n개의 커밋을 추가적으로 불러오고 싶다면 아래 명령어를 입력하면 된다. git fetch --depth={숫자(n)} # example git fetch --depth=15 https://nochoco-lee.tistory.com/200 25.1: Shallow..
Git 커밋 히스토리 없이 혹은 일부 히스토리만 클론 - Shallow Clone 깃 원격 저장소에서 커밋 히스토리가 아래와 같이 많이 쌓여있지만 필요에 따라 히스토리들을 모두 가져오지 않고 일부 히스토리만 가져오거나 히스토리 없이 클론할 수 있는데 이를 Shallow Clone이라고 한다. 히스토리 없이 원격 저장소 clone 히스토리 없이 원격 저장소의 최신 상태만 클론하고 싶다면 아래와 같은 명령어를 입력하면 된다. git clone --depth 1 {원격 저장소 주소} # example 1 git clone --depth 1 git@github.com:CodeDiary18/TEMP.git # example 2 git clone --depth 1 https://github.com/CodeDiary..
MobaXterm(모바엑스텀) 설치 MobaXterm은 SSH, RDP, SFTP 등 다양한 네트워크 클라이언트와 터미널을 제공하는 툴이다. 다른 네트워크 클라이언트 프로그램에 비해 훨씬 강렬하고 편리한 세션 연결을 지원한다. 개인적으로 Putty를 사용하는 것보다 훨씬 더 편리하기 때문에 MobaXterm을 사용하는 것을 추천한다. 설치를 위해 아래 사이트에 들어가 MobaXterm Home Edition을 설치한다. MobaXterm free Xserver and tabbed SSH client for Windows The ultimate toolbox for remote computing - includes X server, enhanced SSH client and much more! mobaxt..
삽입 정렬(Insertion Sort) 삽입 정렬은 손안의 카드를 정렬하는 방법(새로운 카드를 기존의 정렬된 카드 사이에 올바른 위치에 삽입)과 유사하다. 또한 삽입 정렬은 선택 정렬과 유사하지만, 좀 더 효율적인 정렬 알고리즘이다. 자료 배열의 모든 요소를 앞에서부터 차례대로 이미 정렬된 배열 부분과 비교하여, 자신의 위치를 찾아 삽입함으로써 정렬을 완성하는 알고리즘이다. 정렬 과정 2번째 위치(index)의 값부터 정렬을 시작한다. 해당 인덱스(key 값) 앞에 있는 데이터(B)부터 비교해서 key 값이 더 작으면, B값을 뒤 인덱스로 복사 이를 key 값이 더 큰 데이터를 만날 때까지 반복 큰 데이터를 만난 위치 바로 뒤에 key 값을 이동 파이썬 코드 def insertion_sort(arr): ..
[프로그래머스] DATETIME에서 DATE로 형 변환 - MySQL SELECT ANIMAL_ID, NAME, DATE_FORMAT(DATETIME, '%Y-%m-%d') AS 날짜 FROM ANIMAL_INS ORDER BY ANIMAL_ID; https://programmers.co.kr/learn/courses/30/lessons/59414 코딩테스트 연습 - DATETIME에서 DATE로 형 변환 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programm..
[프로그래머스] 오랜 기간 보호한 동물(2) - MySQL SELECT I.ANIMAL_ID, I.NAME FROM ANIMAL_INS I, ANIMAL_OUTS O WHERE I.ANIMAL_ID = O.ANIMAL_ID ORDER BY O.DATETIME-I.DATETIME DESC LIMIT 2; # or SELECT I.ANIMAL_ID, I.NAME FROM ANIMAL_INS I INNER JOIN ANIMAL_OUTS O ON I.ANIMAL_ID = O.ANIMAL_ID ORDER BY O.DATETIME-I.DATETIME DESC LIMIT 2; # or # 'INNER' 생략 SELECT I.ANIMAL_ID, I.NAME FROM ANIMAL_INS I JOIN ANIMAL_OUTS..
[프로그래머스] 중성화 여부 파악하기 - MySQL SELECT ANIMAL_ID, NAME, CASE WHEN SEX_UPON_INTAKE LIKE '%Neutered%' OR SEX_UPON_INTAKE LIKE '%Spayed%' THEN 'O' ELSE 'X' END AS 중성화 FROM ANIMAL_INS ORDER BY ANIMAL_ID; # or SELECT ANIMAL_ID, NAME, IF(SEX_UPON_INTAKE LIKE '%NEUTERED%' OR SEX_UPON_INTAKE LIKE '%SPAYED%','O','X') AS 중성화 FROM ANIMAL_INS ORDER BY ANIMAL_ID; https://programmers.co.kr/learn/courses/30/lesso..
[프로그래머스] 이름에 el이 들어가는 동물 찾기 - MySQL SELECT ANIMAL_ID, NAME FROM ANIMAL_INS WHERE NAME LIKE '%el%' AND ANIMAL_TYPE='Dog' ORDER BY NAME; https://programmers.co.kr/learn/courses/30/lessons/59047 코딩테스트 연습 - 이름에 el이 들어가는 동물 찾기 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr
Git Cannot create a new backup.~ 관련 에러 Git에서 filter-branch를 사용하다보면 간혹 아래와 같은 에러가 나올 때가 있다. Cannot create a new backup. A previous backup already exists in refs/original/ Force overwriting the backup with -f 이를 해결하기 위한 방법으로 두가지 정도를 찾을 수 있었다. 첫번째는 git filter-branch 뒤에 -f 혹은 -force를 추가해서 사용하면 된다. 아래는 예시이다. git filter-branch -f --env-filter ' 두번째는 아래 명령어를 통해 백업을 제거한 뒤, 다시 작업하려고 했던 명령어를 입력하면 된다. git ..