2022 ICPC Sinchon Winter Algorithm Camp Contest 풀이
A   [BOJ 24510] 시간복잡도를 배운 도도
B   [BOJ 24509] 상품의 주인은?
C   [BOJ 24511] queuestack
D   [BOJ 24512] Bottleneck Travelling Salesman Problem (Small)
E   [BOJ 24513] 좀비 바이러스
F   [BOJ 24514] n번째 숫자 찾기
G   [BOJ 24515] 히히 못가
H   [BOJ 24516] 잘 알려진 수열 구하기
J   [BOJ 24517] 카드 게임과 쿼리
K   [BOJ 24519] Bottleneck Travelling Salesman Problem (Large)

1. 문제

$24509$. 상품의 주인은? (2022 ICPC Sinchon Winter Algorithm Camp Contest B번)

백준 24509번 - 상품의 주인은? (https://www.acmicpc.net/problem/24509)

2. 풀이

boj-24509

boj-24509

각각의 과목들에 대해서 정렬해서 $1$등 한 사람을 찾고, 그 사람이 다른 과목에서 $1$등하지 않았다면 출력하는 문제이다.

모든 과목을 한 번에 처리하기 위해서 입력 받으면서 각각의 과목별 priority queue에 저장하였다. 제일 높은 점수가 top에 오므로 pq에서 순서대로 pop하면 된다. 이때 check 배열을 만들어 해당 학생이 이미 상품을 받았는지를 확인한다.

단, 동점이 있으면 번호가 빠른 사람이 상품을 받는다는 조건이 있어서, 올바르게 정렬되도록 pq를 만들 때 비교 함수를 따로 만들어주어야 한다. Priority queue의 정렬 기준 커스텀 방법은 아래 링크의 백준 게시글에 설명되어 있다.

우선순위큐 정렬기준 커스텀하기 (https://www.acmicpc.net/blog/view/114)

3. 채점 결과

boj-24509

4. 회고

동점이 있으면 번호가 빠른 사람이 상품을 받는다는 조건을 간과해서 WA를 받았다.

5. 코드

댓글남기기