티스토리 뷰
2336번: 굉장한 학생
첫째 줄에 N(1 ≤ N ≤ 500,000)이 주어진다. 다음 세 개의 줄에는 각 시험에서 1등인 학생부터 N등인 학생이 순서대로 주어진다. 학생의 번호는 1부터 N까지 매겨져 있다.
www.acmicpc.net
첫 번째 시험을 기준으로 오름차순으로 정렬한다. 그러면 어떤 학생을 기준으로 그 앞에 있는 학생은 모두 첫 번째 시험에서 그 학생보다 좋은 성적을 받은 학생이다. 여기서 두 번째, 세 번째 시험도 더 잘 친 사람이 있는지 체크하면 된다. 두 번째 시험을 나보다 잘 친 사람이 없다면 정답이 하나 증가하고 그렇지 않은 경우 두 번째 시험을 나보다 잘 친 사람들 중에서 나보다 세 번째 시험을 잘 친 사람이 있는지 확인하면 된다.
세그먼트 트리의 리프 노드 i를 두 번째 시험 등수가 i인 학생의 3 번째 시험 등수로 정의하고 첫 번째 학생부터 검사해 나가면 된다. 현재 보고 있는 학생이 i라면 [1, i - 1] 범위를 확인하면 된다. 현재 나보다 두 번째 시험을 잘 친 사람이 없다면 모두 초깃값 INF를 반환하고, 있다면 어떤 최솟값 m을 반환한다. 그 값을 지금 보고 있는 학생의 세 번째 값과 비교하자.
삽질 기록 : i 번째 세로줄의 의미가 i 번째 학생이 첫 번째 시험 등수, 두 번째 시험 등수, 세 번째 시험 등수인 줄 알고 삽질했다. 실제 의미는 각 시험에서 성적이 높은 순으로 "학생 번호"를 나열한 것. 이 덕분에 삽질 1시간 했다.
- Source code link
- Total
- Today
- Yesterday
- 디지털 비디오 디스크
- 제로베이스 스쿨
- 백준 1106
- boj 3006
- 인간 대포
- boj 9345
- boj 14868
- boj 2336
- 백준 10775
- 백준 2243
- 백준 9345
- boj 1106
- boj 2243
- Ugly Numbers
- boj 10473
- 백준 14868
- 터보소트
- 사탕상자
- 백준 3006
- boj 12713
- boj 16562
- boj 1280
- 부트 캠프
- 백준 16562
- 백준 2336
- 제로베이스 백엔드 스쿨
- 백준 10473
- 백준 12713
- boj 10775
- 백준 1280
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |