문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/214288
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
reqs의 크기가 최대 300이고 상담원 배치 조합이 최대 15C5이기 때문에 브루트포스로 접근해도 되는 문제였습니다.
알고리즘은 다음과 같습니다.
1. 상담원을 배치할 수 있는 모든 조합을 구해줍니다.
2. 각각의 상담원 배치에 대해 기다린 시간의 합산을 구해줍니다.
2.1 자료구조는 시간을 기준으로 최소힙 배열을 선언하였고 각 유형의 상담원 인원수만큼 우선순위큐에 0을 넣어줬습니다.
2.2 우선순위 큐의 top()에 위치한 시간이 다음 참가자의 상담 시작 시간보다 앞서 있을 경우 대기 시간을 더해주고 우선순위 큐에는 해당 참가자가 상담을 마친 시간을 다시 넣는 형식으로 대기 시간의 합산을 구했습니다.
3. 2번에서 구한 기다린 시간의 합산 중 최솟값을 반환합니다.
![](https://blog.kakaocdn.net/dn/emF9D7/btsHgZlC6Lx/Cee22tYjev47FgCk6covWk/img.png)
개발환경: Programmers IDE
지적, 조언, 질문 환영합니다! 질문 남겨주세요~
반응형
'알고리즘 > programmers' 카테고리의 다른 글
[Programmers] 에어컨 (0) | 2024.05.30 |
---|---|
[Programmers] 분기별 분화된 대장균의 개체 수 구하기 (2) | 2024.05.25 |
[Programmers] 표현 가능한 이진트리 (0) | 2024.05.08 |
[Programmers] 미로 탈출 명령어 (0) | 2024.05.08 |
[Programmers] 등산코스 정하기 (0) | 2024.05.07 |