코딩테스트 - 패스트캠퍼스 챌린지 26일차
수강한 강의
Part 3. 알고리즘 유형별 풀이
Chapter 02 알고리즘
- 다양한 정렬 응용법 (Sort Application)
- 다양한 정렬 응용법 (Sort Application) - 응용법
학습 후기
정렬
오름차순: 1, 2, 3, 4... 뒤로 갈수록 숫자가 커지는 경우
내림차순: 9, 8, 7, 6... 뒤로 갈수록 숫자가 작아지는 경우
알고리즘에서 정렬을 사용하는 포인트
1. 정렬 조건이 필요하다
class Item implements Comparable<Item> {
public int num;
public int idx;
@Override
public int compareTo(Item o) {
return num - o.num;
}
}
compareTo 함수에서 return 값이 음수이면 num가 먼저, return 값이 양수이면 파라미터로 받는 o.num가 먼저 정렬된다.
같으면 자리를 바꾸지 않는다. 위의 코드는 오름차순 정렬 예시이다.
2. 시간 복잡도는 약 O(N log N)이다.
N개의 원소를 정렬하는 것은 O(N log N)만큼의 시간 복잡도를 갖는다. N이 만약 10만이면 100000 * log 100000(여기서 로그는 밑이 2)이고 log 100000은 약 16이기 때문에 160만 번의 연산이 필요하고 컴퓨터는 1초에 대략 1억 번의 연산을 하기 때문에 시간 복잡도 O(N log N)은 충분히 연산이 가능하다.
3. In-place / Stable 여부를 알아야 한다.
In-place: 정렬하는 과정에서 N에 비해 충분히 무시할 만한 개수의 메모리만큼만 추가적으로 사용하는가? 많이 안 쓰면 In-place
Stable: 같은 값을 정렬할 때 위치가 보존되는가? 보존되면 Stable
Java Arrays.sort() | Primitive 원소 정렬 | Object 원소 정렬 |
정렬 방식 | Dual-Pivot Quick Sort | Tim Sort |
최선 시간 복잡도 | O(N) | O(N) |
최악 시간 복잡도 | O(N^2) | O(N log N) |
평균 시간 복잡도 | O(N log N) | O(N log N) |
In-place Sort | Stable Sort |
정렬의 특성
1. 같은 정보들은 인접해 있을 것이다.
2. 가장 가까운 원소는 자신의 양 옆 중에 있다.
문제를 풀기 전 정렬의 특성을 알고 정렬 활용만으로도 쉽게 풀리는 문제가 많으니 잘 기억해두자.
이번 강의에서 푼 문제
https://www.acmicpc.net/problem/10825
10825번: 국영수
첫째 줄에 도현이네 반의 학생의 수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 한 줄에 하나씩 각 학생의 이름, 국어, 영어, 수학 점수가 공백으로 구분해 주어진다. 점수는 1보다 크거나 같고, 1
www.acmicpc.net
https://www.acmicpc.net/problem/1015
1015번: 수열 정렬
P[0], P[1], ...., P[N-1]은 0부터 N-1까지(포함)의 수를 한 번씩 포함하고 있는 수열이다. 수열 P를 길이가 N인 배열 A에 적용하면 길이가 N인 배열 B가 된다. 적용하는 방법은 B[P[i]] = A[i]이다. 배열 A가 주
www.acmicpc.net
https://www.acmicpc.net/problem/11652
11652번: 카드
준규는 숫자 카드 N장을 가지고 있다. 숫자 카드에는 정수가 하나 적혀있는데, 적혀있는 수는 -262보다 크거나 같고, 262보다 작거나 같다. 준규가 가지고 있는 카드가 주어졌을 때, 가장 많이 가지
www.acmicpc.net
https://www.acmicpc.net/problem/15970
15970번: 화살표 그리기
직선 위에 위치를 나타내는 0, 1, 2, ...와 같은 음수가 아닌 정수들이 일정한 간격으로 오른쪽 방향으로 놓여 있다. 이러한 위치들 중 N개의 위치에 하나씩 점들이 주어진다(<그림 1>). 주어진 점들
www.acmicpc.net
수강 인증샷
패스트캠퍼스 [직장인 실무교육]
프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.
fastcampus.co.kr
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.