목록우선순위 큐 (25)
어흥
문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/147354 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 주의할 점 - 행과 열이 0이 아닌 1부터 시작한다 - 한번은 오름차순 정렬, 한번은 내림차순 정렬이다 - 원소들의 합에 대한 mod 연산이 아닌, 각 원소의 mod 연산에 대한 합이다 - 첫 mod 합은 XOR 연산을 수행하지 않는다 2. 구현 - 조건에 따른 정렬을 하는 우선순위 큐를 사용한다 - 해시값에 대해서 XOR 연산을 계속해서 수행한다 #include #includ..
문제 링크: https://www.acmicpc.net/problem/19598 19598번: 최소 회의실 개수 서준이는 아빠로부터 N개의 회의를 모두 진행할 수 있는 최소 회의실 개수를 구하라는 미션을 받았다. 각 회의는 시작 시간과 끝나는 시간이 주어지고 한 회의실에서 동시에 두 개 이상의 회의 www.acmicpc.net 1. 주의할 점 - 정렬기준을 잡는다 - 2개의 우선순위큐를 이용한다 2. 구현 - 각 입력에 대한 정보들을 시작시간에 대한 오름차순, 종료시간에 대한 내림차순으로 정렬하는 우선순위큐 PQ에 담는다 - 현재 진행중인 회의에 대한 종료시간을 담는 우선순위 큐 haveRight에 PQ의 첫 원소의 종료시간을 담고 시작한다 - haveRight 우선순위큐는 오름차순으로 정렬한다 - 우선..
문제 링크: https://www.acmicpc.net/problem/16118 16118번: 달빛 여우 첫 줄에 나무 그루터기의 개수와 오솔길의 개수를 의미하는 정수 N, M(2 ≤ N ≤ 4,000, 1 ≤ M ≤ 100,000)이 주어진다. 두 번째 줄부터 M개의 줄에 걸쳐 각 줄에 세 개의 정수 a, b, d(1 ≤ a, b ≤ N, a ≠ b www.acmicpc.net 1. 주의할 점 - 늑대가 같은 지점에 최단 경로로 도착하는것보다 돌아서 가는게 빠를 수 있다(느릴 때, 빠를 때 적절히 이용) - 1번째 Node까지의 최단시간을 0으로 설정하지 않는다(0을 이용하여 돌아갈 수 있다) - d와 M의 범위가 크므로 Long Long을 이용한다 2. 구현 - Info 객체를 이용한 우선순위 큐를 ..
문제 링크: https://www.acmicpc.net/problem/5972 5972번: 택배 배송 농부 현서는 농부 찬홍이에게 택배를 배달해줘야 합니다. 그리고 지금, 갈 준비를 하고 있습니다. 평화롭게 가려면 가는 길에 만나는 모든 소들에게 맛있는 여물을 줘야 합니다. 물론 현서는 www.acmicpc.net 1. 주의할 점 - 다익스트라 알고리즘에 대해 알고 있어야 한다 2. 구현 - 1번 Node부터 각 Node까지의 거리를 MAX로 초기화한다 - 간선에 대한 정보를 V[] 벡터에 담는다 - 우선순위큐를 사용하여 다익스트라 알고리즘을 구현한다 #define MAX 987654321 #include #include #include #include using namespace std; struct ..
문제 링크: https://www.acmicpc.net/problem/21608 21608번: 상어 초등학교 상어 초등학교에는 교실이 하나 있고, 교실은 N×N 크기의 격자로 나타낼 수 있다. 학교에 다니는 학생의 수는 N2명이다. 오늘은 모든 학생의 자리를 정하는 날이다. 학생은 1번부터 N2번까지 번호 www.acmicpc.net 1. 주의할 점 - 우선순위 큐 정렬을 잘 정리한다 - 요구에 맞게 정확히 구현한다 2. 구현 - Arr[][] 배열을 통해 해당 자리에 위치한 학생 번호를 저장한다 - favorPeople[] Set을 통해 해당 학생이 선호하는 학생 번호를 저장한다 - score[] 배열을 통해 선호하는 학생들의 수에 해당하는 점수를 반환한다 - 배치할 학생들의 순서를 people 큐에 ..
문제 링크: https://www.acmicpc.net/problem/22867 22867번: 종점 주행을 마친 버스들이 종점에 들어온다. 종점에 들어온 버스는 버스를 정비하기 위한 자리에 들어간다. 즉, 종점에 버스 4대가 있다면 버스를 정비할 수 있는 공간이 최소 4개 이상 필요하다. www.acmicpc.net 1. 주의할 점 - 정렬 방법을 잘 수립한다 - 우선순위 큐를 사용한다 - 초기에 구상했던 정렬에 대한 반례는 아래에 있습니다 (PQ 1개만 이용) 더보기 #TC 1 3 00:00:00.000 00:00:00.002 00:00:00.000 00:00:00.010 00:00:00.002 00:00:00.010 AC: 2 #TC 2 6 00:00:00.000 00:00:00.002 00:00:0..
문제 링크: https://www.acmicpc.net/problem/17612 17612번: 쇼핑몰 입력의 첫 줄에는 2개의 정수 N(1 ≤ N ≤ 100,000)과 k(1 ≤ k ≤ 100,000)가 주어진다. 다음 줄부터 N개의 줄에 걸쳐 고객 N명의 정보가 줄 맨 앞의 고객부터 맨 뒤 고객까지 순서대로 주어진다. i번째 www.acmicpc.net 1. 주의할 점 - 우선 순위큐에 사용될 정렬 방법을 잘 정리한다 - 사람수 < 카운터 수 일 때? 2. 구현 - Cmp 비교함수를 통해 우선순위큐의 정렬 방법을 정리한다 - Counter의 수만큼 enterCounter 우선순위큐에 미리 삽입한다 (id는 0으로 설정. 이유는 하단에..) - id와 물건의 수 w를 입력받고, enterCounter의 ..
문제 링크: https://programmers.co.kr/learn/courses/30/lessons/85002 코딩테스트 연습 - 6주차 복서 선수들의 몸무게 weights와, 복서 선수들의 전적을 나타내는 head2head가 매개변수로 주어집니다. 복서 선수들의 번호를 다음과 같은 순서로 정렬한 후 return 하도록 solution 함수를 완성해주세요 programmers.co.kr 1. 주의할 점 - 승률을 소수점도 포함한다 - 승률을 계산할 때, 이긴횟수와 진 횟수를 통해 계산한다(N 포함x) 2. 구현 - Info 구조체를 통해 각 정보를 저장한다 - Cmp operator를 통해 우선순위큐의 정렬 방법을 설정한다 - 각 선수들의 정보를 계산하여 우선순위큐에 넣고, 다 끝났으면 1개씩 빼면서..