구조체(튜플), 정렬 심화, 이분탐색 (lower_bound, upper_bound), 매개 변수 탐색(Parametric Search)



1. 구조체(튜플)

구조체(튜플)은 알고리즘에서 주어진 데이터를 원하는 형태로 가공할 수 있게 해줍니다.

ex) 학생들의 정보를 담고 있는 배열을 만들고 싶다. 정보 : 이름, 학년, 영어 성적, 국어 성적, 수학 성적

많은 알고리즘의 기초가 되기 때문에 꼭 숙지하고 넘어가셔야 합니다.

ex) 위의 학생들의 정보를 담고 있는 배열에서 (영어성적+국어성적)/수학성적 의 값 순서대로 배열을 정렬하기

ex) 3차원 공간에 속한 점들 중 한 평면 위에 있는 점들을 고르기

2. 정렬 심화

정렬을 custom하는 것은 매우 중요합니다. 단순히 오름차순, 내림차순 뿐만 아니라, 복합적인 기준에 대해 정렬을 할 수 있어야 합니다. 보통 위에 언급한 구조체와 함께 사용합니다.

ex) 2차원 공간에 무작위로 찍힌 점들을 $y=x$ 직선에 가까운 순서대로 정렬

연습 문제