구조체(튜플), 정렬 심화, 이분탐색 (lower_bound, upper_bound), 매개 변수 탐색(Parametric Search)
구조체(튜플)은 알고리즘에서 주어진 데이터를 원하는 형태로 가공할 수 있게 해줍니다.
ex) 학생들의 정보를 담고 있는 배열을 만들고 싶다. 정보 : 이름, 학년, 영어 성적, 국어 성적, 수학 성적
많은 알고리즘의 기초가 되기 때문에 꼭 숙지하고 넘어가셔야 합니다.
ex) 위의 학생들의 정보를 담고 있는 배열에서 (영어성적+국어성적)/수학성적
의 값 순서대로 배열을 정렬하기
ex) 3차원 공간에 속한 점들 중 한 평면 위에 있는 점들을 고르기
정렬을 custom하는 것은 매우 중요합니다. 단순히 오름차순, 내림차순 뿐만 아니라, 복합적인 기준에 대해 정렬을 할 수 있어야 합니다. 보통 위에 언급한 구조체와 함께 사용합니다.
ex) 2차원 공간에 무작위로 찍힌 점들을 $y=x$ 직선에 가까운 순서대로 정렬
boj.kr/1427
: 수를 내림차순으로 정렬해봅시다.boj.kr/1181
: 두 개의 기준에 맞춰 정렬을 해봅시다.boj.kr/10825
: 여러가지 기준에 맞춰 정렬을 해봅시다.boj.kr/18870
: 커리큘럼상에는 없지만 알아두면 유용한 좌표 압축 알고리즘입니다.