일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 전치사
- dfs
- baekjoon
- 일상회화
- 라이브아카데미
- N-Queens
- 백준
- BFS
- 알고리즘
- 회화
- 백트래킹 알고리즘
- used to
- 영어
- python
- Backtracking Algorithm
- 블록체인
- 영어 회화
- Hyperledger Fabric
- 관계절
- 파이썬
- 라이브 아카데미
- 영어회화
- 영어회와
- 백트래킹
- 완전탐색
- 영어기초
- IF
- 다이나믹프로그래밍
- 정렬
- 회화기초
- Today
- Total
목록정렬 (6)
내 맴
문제 ) https://www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net [ 풀이 ] 산술평균, 중앙값, 범위를 구하는 방법은 매우 쉬웠다. 최빈값을 구하기 위해서 Collections모듈의 Counter class를 이용해주었다. 우선, 입력한 N개의 숫자 list를 정렬해주고 시작 ✔ 산술평균 : list의 전체합을 N으로 나눠준 값이다. 소수점 이하 첫째 자리에서 반올림 해야하므로 round함수를 이용해준다. ✔ 중앙값 : list를 정렬했으므로 list의 중간 index..
- Quick Sort 설명 : pivot을 설정하고 partition을 수행하여 pivot값을 고정시킨다. 1. pivot을 설정하기 2. partition과정 수행 → pivot이 고정됨 3. pivot보다 큰 부분과 작은 부분 각각 quick sort 다시 시행 - Partition 과정 1. i= 맨처음 수 , j= 맨 마지막 수 2. (1) i가 하나씩 커지면서 i>pivot이 되면 멈춤 (2) j가 하나씩 작아지면서 j
- Bubble Sort 설명 : 인접한 두 원소 검사하여 정렬 list의 원소 갯수: n개 일때 1. (n-1)번 회전하면서 제일 큰 값을 고정시킨다. 1. 첫번째 원소와 두번째 원소 비교 → 작은 수가 앞으로 오게 exchange 2. 두번째 원소와 세번째 원소 비교 → 작은 수가 앞으로 오게 exchange ..... 고정된 원소까지 반복 - python code
- Merge Sort 설명 ✔ divide & conquer방법을 이용함 ✔ n개의숫자들을 반으로 나눠 2개의 부분으로 분할하고 → 각각의 부분을 재귀적으로 정렬한 후 → 2개의 정렬된 부분을 merge하여 정렬 - Mergesort (1) 1개의 정렬되지 않은 배열을 2개의 배열로 분할하는것을 반복 → 배열의 원소 갯수가 1개가 될때까지 반복 (2) 양쪽의 배열의 크기가 둘 다 1개가 되면 merge시켜준다 ✔ 입력 크기가 n=6 , list A= [ 9, 20, 5, 15, 3, 11 ]인 경우 초록색 화살표는 divide하는 과정, 노란색 화살표는 merge하는 과정을 의미한다. - Merge ✔ 두개의 정렬된 배열을 하나의 정렬된 배열로 합치는 function ✔ A=[1,,,,h] 와 B=[1..
- Selection Sort 설명 고정이 되는 수와 나머지 수들을 비교해서 제일 작은 수와 고정된 수를 바꿔서 정렬한다 1. i=0 , j=i+1부터 시작한다 2. i는 고정 , j값을 하나씩 늘려가면서 A[i]보다 작은 값인 min값을 찾는다 3. If min값을 찾으면, A[i]와 min값을 exchange 하고 i+1해주기 Else A[i]보다 작은 값이 존재하지 않으면 (A[i]가 제일 작은 값인 경우) i+1해주기 - python code