정렬

https://www.acmicpc.net/problem/1202 가방은 오름차순으로 정렬한다.가장 가벼운 가방으로 들 수 있는 보석들은 이후 모든 가방으로도 들 수 있기 때문이다. 보석은 무게를 기준으로 오름차순으로 정렬하되, 무게가 같은 경우, 가격순으로 내림차순으로 정렬한다.훔칠 수 있는 보석 가격의 합의 최댓값을 구해야 하기 때문이다. 가방을 모두 순회하며 해당 가방의 무게로 들 수 있는 보석들을 우선순위 큐에 저장한다.우선순위 큐는 무게와 상관없이 가격순으로 내림차순 정렬이 되도록 한다. 현재 가방 무게로 가장 비싼 보석을 더하고, 큐에서 제거한다.#include #include #include #include using namespace std;bool Cmp(const pair& a, con..
https://school.programmers.co.kr/learn/courses/30/lessons/152995 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 두 점수의 합이 10인 사원이 있다고 하자..이 사원이 인센티브를 받지 못하는 경우는 최소 두 점수의 합이 12이어야 한다. (1씩 높은 경우)따라서, 두 점수의 합이 10보다 아래인 사원들은 굳이 비교하지 않아도 된다. 또한, 사원 중에 { 4, 5 }, { 4, 4 }가 있다고 하면, { 4, 5 }만 비교에 사용해도 되기 때문에, { 4, 4 }는 사실상 필요 없다. 점수가 이전과 같은 경우, 순위는 그대로여야 한다.점수가 이전과 다른 ..
https://www.acmicpc.net/problem/17420 사용하려는 날보다 이전 날에 사용한 기프티콘의 유효 기간보다 커야 한다는 점을 유의한다.기프티콘 사용 계획을 오름차순으로 정렬하여, 먼저 사용하는 순서대로 로직을 설계한다. 다음 예시를 통해 설명한다.424 2 3 29 // 기프티콘 유효 기간25 30 30 30 // 사용하려는 날 ans: 6 남은 기프티콘의 유효 기간이 짧은 순서대로 사용해야 한다하지만, 30일에 사용하는  2, 3, 24의 경우, 아직 25일이 지나지 않았기 때문에, 사용하지 못한다. 그러면 사용하려는 날을 기준으로 계산해 보자.사용하려는 날을 오름차순으로 정렬한다. 25일을 보자.현재 날짜가 25일이면, 사용할 수 있는 기프티콘으로는 24가 있다.기프티콘..
https://school.programmers.co.kr/learn/courses/30/lessons/42627 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 먼저, 모든 작업을 처리한, 총 ms를 구한다.(기저사항, 모든 작업이 끝났는지 확인하기 위함) 요청은 무조건 먼저 들어오는 순으로 받아야 하기 때문에, 요청 시간을 기준으로 오름차순으로 정렬한다.현재 시간과 현재 처리 중인 요청을 저장할 변수를 선언한다.더 처리할 요청이 남아있고, 현재 시간에 요청이 있을 경우, 큐에 { 수행 시간, 요청 시간 }으로 넣는다.이러면, 새 데이터가 들어오면 우선순위 큐에서 수행 시간을 기준으로 오름차순으로 정렬..
문제: https://www.acmicpc.net/problem/1781 최대 데드라인을 초과하지 않는 범위에서 가장 많은 컵라면을 얻는 문제이다. ex)7 1 9 1 100 2 300 2 99 3 100 5 100 5 999 다음 예시에서, Day1에서는 1~5 데드라인의 문제를 모두 풀 수 있다.그리고, Day5에서는 5 데드라인의 문제만이 풀 수 있다. 따라서, 이 문제는 마지막 날부터 역순으로 계산하는 것이 핵심인 문제이다. 데드라인을 하나씩 줄여가며, 각 날짜에 풀 수 있는 문제들을 우선순위 큐에 넣는다.(우선순위 큐는 그러면 계속 풀 수 있는 문제 후보군들이 남아있다)각 날마다 우선순위 큐 안에서 보상이 가장 큰 문제를 선택하여 정답에 더하고, 큐에서 뺀다.#include #include #i..
문제: https://www.acmicpc.net/problem/2890 #include #include #include using namespace std;int R, C;string Str;vector> Team;int Cmp1(const vector& a, const vector& b) { return a[1] > b[1]; }int Cmp2(const vector& a, const vector& b) { return a[0] > R >> C; for (int i = 1; i > Str; for (const auto& i : Str) { if (i == '.') Count++; if (i > 48 && i = Count) { i[2] = Rank; Count = i[1]; } ..
주으기
'정렬' 태그의 글 목록