반응형

2024/09/09 12

[TIL] 퀵 정렬 Quick Sort 추가 공부

09/10 TUE 퀴즈를 대비한 퀵 정렬 추가 공부  퀵 정렬 Quick Sort분할 정복 알고리즘의 대표 예시  Pivot 값을 중심으로 작은 값/ 큰 값을 계속 나누기 때문에 재귀 함수임 방식1) 르모토 - 월 같은 걸 추가한다 (이건 나중에 추가 공부하고 해주신대)2) 호어 Hoare - Pivot 으로 판단한다 (Left + Right) // 2 를 Pivot 으로 설정하고, Pivot 기준으로 왼쪽은 작은 값, 오른쪽 큰 값 비교하여 서로 반대인 경우 Swap 첫번째 비교가 완료되면 Pivot 기준 왼쪽/ 오른쪽으로 또 쪼개서 Pivot 만들어정렬을 완료한다 + Pivot 을 arr[0] 에 줘도 되고, 어디에 주던 본인 마음임+ while 문 안에서 Pivot 의 위치는 바뀔 수 있지만 Piv..

TIL/Python 2024.09.09

[정글] 현수 코치님의 팁

정글은 PT 선생님이 "한 번만 더!" 하는 것처럼 매일 매일 자신의 임계치를 넘어서야 하는 곳  정글에서는 어떻게 동작하는지 계속 궁금해하는 마음을 가져야 한다  이걸 왜 배워야 하지? 를 생각해봐야 한다  알고리즘을 왜 하는가? 알고리즘을 통해서 여러분들이 다루는 데이터 개수가 (양이)  어마어마한데 그것을 다룰 수 있는 최적의 방법을 찾기 위함  대량 트래픽을 어떻게 감당할 것인가? 를 생각하기

[MAC] GIT feat. MAC

남(?)의 레포에 내 브랜치를 만들고 싶을 때 여기 부분 은 연결한 이후에 진행  저장소를 클론한다git clone  클론한 디렉토리로 이동한다cd  원격 저장소 추가한다 git remote add origin  새 브랜치를 생성하고 체크아웃한다git checkout -b  git add .git commit -m 'COMMIT'* Add 하면 Branch 이름이 노랑색으로 변경됨 (원격)* Commit 하면 Branch 이름이 초록색으로 변경됨 (로컬) git push origin  하면 내가 선택한 브랜치로 push가 된다!! ㅡ pull 은 아직 안 해 봄 원격 브랜치의 최신 변경 사항을 가져온다git pull origin helloahram원격 브랜치 삭제하기git push origin -d  +..

MAC 2024.09.09

[TIL] 분할 정복

분할 정복 Divide and Conquer큰 문제를 작은 문제들로 나누어 각 작은 문제를 해결한 후, 그 해를 결합하여 원래 문제를 해결하는 방법  기본적으로, 크고 복잡한 문제를 더 풀기 쉬운 작은 문제들로 나누고각각을 해결한 후 다시 합쳐서 문제를 해결하는 개념에서 출발한다 1. 분할 Divide 큰 문제를 더 작은 하위 문제로 나눈다2. 정복 Conquer 각 하위 문제를 재귀적으로 해결한다, 하위 문제가 충분히 작아지면 직접 해결    (하위 문제의 크기가 더 이상 나눌 수 없는 단위에 이르면 재귀 호출을 멈추고 해결)3. 결합 Combine 해결된 하위 문제들을 결합하여 원래 문제에 대한 해답을 구한다 * Divide 를 설계하면 Conquer 과정이 자동으로 쉬워지기 때문에 문제를 어떻게 나..

TIL/C언어 2024.09.09

[TIL] For Range - Python

for 반복문은 특정 값들의 집합에 대해 코드 일부분을 반복한다for i in range(5): print("Hello") # 실행 결과HelloHelloHelloHelloHello 제공된 리스트, 배열, 문자열과 같은 interable 객체의 길이만큼 반복할 수도 있고그 요소에 직접 접근할 수도 있다 Range일정 범위의 연속된 정수를 생성하는데 사용range(stop)range(start, stop)range(start, stop, step) * Start ; 시퀀스의 시작 값* Stop ; 시퀀스의 끝 값 ( 포함되지 않음 )* Step ; 시퀀스의 각 값 간의 간격 1. 인덱스 사용객체의 길이만큼 반복할 때 range(len([LIST)) 를 사용len(arr) == arr 의 길이,..

카테고리 없음 2024.09.09

[TIL] 정렬

DO IT 알고리즘입문 CH06 CH06 정렬 알고리즘정렬 Sorting 이름, 학번, 학점 등의 키 Key 를 항목값의 대소 관계에 따라 데이터 집합을 일정한 순서로 바꾸어 늘어놓는 작업 오름차순 Ascending Order 값이 작은 데이터를 앞쪽에 늘어놓는 것내림차순 Descending Order 값이 큰 데이터를 앞쪽에 늘어놓는 것안정적인 알고리즘 - 값이 같은 원소의 순서가 정렬한 후에도 유지되는 알고리즘안정적이지 않은 알고리즘 - 정렬한 후에도 원래의 순서가 유지된다는 보장이 없다내부 정렬 Internal Sorting 정렬할 모든 데이터를 하나의 배열에 저장할 수 있는 경우에 사용외부 정렬 External Sorting 정렬할 데이터가 많아서 하나의 배열에서 작업할 수 없는 경우 사용정렬 알..

TIL/Python 2024.09.09

[TIL] 복잡도

학습 목표복잡도과 정렬의 개념에 대해서 이해한다복잡도시간 복잡도 Time Complexity 특정한 크기의 입력에 대하여 알고리즘의 수행 시간 분석 공간 복잡도 Sapce Complexity 특정한 크기의 입력에 대하여 알고리즘의 메모리 사용량 분석 시간 복잡도Big-O 표기법 - Worst Case 을 기준으로 표기특정 크기의 입력 n 을 기준으로 실행하는 연산의 횟수O(1) 상수 시간 Contant time ; 입력 크기 ( n ) 에 상관 없이 일정한 연산을 수행하는 시간 복잡도public void constantTime(int n){ System.out.println("cool");} O(log2 n) 로그 시간 Logarithmic time ; n 이 커지면 연산 횟수가 log2 n 에 비례해서..

TIL/C언어 2024.09.09
반응형